![ssh-keygen работает только для root?](https://rvso.com/image/515060/ssh-keygen%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82%20%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE%20%D0%B4%D0%BB%D1%8F%20root%3F.png)
Работает ли 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.