Нулевой индекс вполне допустим, если вы считаете индекс фактически смещением от базового адреса массива. На самом деле это норма, хотя в разных диалектах по-разному. В старом языке Jovial [0]
фактически содержал максимальный размер массива. поэтому он начинался с [1]
.
В некоторых реализациях Basic вы можете произвольно выбрать 0
или 1
в качестве первого индекса. И по крайней мере один Basic позволяет назначать массивы для индексации от [n]
до [m]
. где n
и m
могут иметь любое целое значение, даже отрицательное, пока n
меньше или равно m
. Значение n
при этом вычитается из введенного [index]
, так как index-n = 0
, если index соответствует n
.
Но вы можете сделать то же самое и даже больше в своем собственном коде. Вы даже можете изменить порядок массива таким образом:
dim array(0, abs(m-n));
step=sign(m-n);
if n > m then
base=m
else
base=n;
fi
Этот пример кода на самом деле частично состоит из одного языка. Я просто хотел, чтобы он был более читабельным. Переменная step используется для контроля видимого направления движения, положительного или отрицательного, и используется для вычисления эффективного индекса при входе в массив или выходе из него, который на самом деле всегда положителен, начиная с [0]
.
В зависимости от шагов, которые вы выполнили, ваш идентификатор _rsa должен быть установлен на 600, а не на 700. Готов поспорить, что именно по этой причине вы не можете подключиться к серверу по SSH. Шаг, о котором я говорю, это:
[root@iz2ze9wve43n2nyuvmsfx5z ~]# chmod 700 ~/.ssh
[root@iz2ze9wve43n2nyuvmsfx5z ~]# chmod 700 ~/.ssh/*
#on the local
$ chmod 700 ~/.ssh
$ sudo chmod 700 ~/.ssh/*
Вторая команда chmod должна быть установлена на 600.
Если вы используете SSH-соединение с Mac на Linux:
Временно поверните PasswordAuthentication on
на сервере.
ssh-keygen -b 4096 -t rsa **on the Mac. Like you did**..
Обязательно используйте этот новый ключ.
Затем обязательно установите:
ServerKeyBits 4096 **in sshd_config on the Linux server**.
Тогда ssh-copy-id someuser@somehost
Затем ssh someuser@somehost
и повернитеPasswordAuthentication off
Это должно помочь. Также убедитесь, что у вас есть несколько общих шифров.
Я знаю, что это работает, потому что:https://serverfault.com/a/940634/496863
$ sudo /usr/sbin/sshd -d -p 2222
Password:
debug1: sshd version OpenSSH_7.8, LibreSSL 2.7.3
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available -- exiting.
Судя по вашим журналам, у вас нет ключей сервера. Из вашего вопроса я не уверен, как был установлен sshd
. Обычно при установке пакета сценарии постустановки создают эти ключи. Возможно, вы установили каким-то другим способом?
Но если у вас нет этих ключей, вам нужно создать хотя бы один из них.
Используйте ssh-keygen
для создания ключа, затем перезапуститеsshd
$ sudo ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -N '' -t ed25519
Ссылка:https://linux-audit.com/using-ed25519-openssh-keys-instead-of-dsa-rsa-ecdsa/