ssh-keygen работает только для root?

ssh-keygen работает только для root?

Работает ли ssh-keygen -t rsa, если установлен только для пользователя root?

т. е. если имя пользователя в локальной системе — sodium, и я генерирую ключ с помощью указанной выше команды, а на удаленной системе, если я помещаю ключ в /root/.ssh authorized_keys, это работает.

Но на удаленной системе, если ключ помещен в /home/natrium/.ssh authorized_keys

Это все еще запрашивает пароль. Это ожидаемое поведение или что-то не так в вышеописанной процедуре?

Спасибо..

решение1

Проверьте разрешения на удаленной системе:

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

Есть инструмент, который можно установить в вашем дистрибутиве (он есть в Ubuntu/Debian), который называется:ssh-копия-idкоторый сделает это за вас:

$ ssh-copy-id <remote>

Если это не сработает, попробуйте ssh с опцией «-v», чтобы увидеть более подробные сообщения.

Длинная версия:

#From client to server
client$ scp ~/.ssh/id_rsa.pub remote_server.org:

# next, setup the public key on server
server$ mkdir ~/.ssh
server$ chmod 700 ~/.ssh
server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
server$ chmod 600 ~/.ssh/authorized_keys
server$ rm ~/id_rsa.pub

решение2

Проверьте разрешения от ~sodium/.ssh/authorized_keys до /. Если какой-либо из них доступен для записи всем, ключи ssh не будут доверенными.

Запустите ssh-keygen от имени пользователя, для которого вам нужен ключ. Он должен быть запущен в системе, к которой вы будете подключаться.

ssh-copy-id скопирует идентификаторы с целевой машины на машину, на которой вы хотите использовать ключ.

решение3

Попробуй это:

ssh -v [email protected]

Возможно, вы пытаетесь войти в систему remote4 как sodium, но вы установили ключ для natrium.

решение4

Неважно, где вы генерируете ключи, важно, где вы их храните.

Если вы хотите подключиться по SSH с одной машины на другую, то закрытый ключ должен находиться в папке .ssh в учетной записи, с которой вы подключаетесь по SSH как id_rsa, а открытый ключ должен находиться в файле .ssh/authorized_keys в учетной записи, с которой вы подключаетесь по SSH. Ключи предназначены для пользователей, а не для машин. Поэтому учетные записи, в которые вы их устанавливаете, имеют большое значение.

Еще следует учитывать версию SSH, которую вы используете. Насколько я понимаю, для SSH2 ключи должны находиться в .ssh/authorized_keys2.

Наконец, чтобы действительно увидеть, что происходит, лучше всего следовать инструкциям Lexsys и подключиться по ssh в подробном режиме с флагом -v.

Связанный контент