Идеальный случай
Предполагая, что все идет хорошо, самый простой способ выглядит следующим образом:
-
использовать
ssh-keygen
Команда генерирует пару ключей локально (открытый/закрытый ключ). -
использовать
ssh-copy-id username@your-server-ip
команда для загрузки локального открытого ключа на удаленный сервер -
использовать сейчас
ssh username@your-server-ip
Команда для входа без пароля
Если ключ был сгенерирован ранее локально, первый шаг можно пропустить. Как узнать, был ли он сгенерирован: используйтеls -a ~/.ssh
Команда для проверки существования файлов id_rsa и id_rsa.pub и их создания.
реальная ситуация
Но часто видно, что другие играют очень хорошо, а когда сам потренируешься, будут разные проблемы. Снова:Не так много ям, на которые нужно наступать!Если вы столкнулись с проблемами, вы можете взглянуть на распространенные из них, перечисленные ниже.TROUBLESHOOTING.
-
если вы выполняете
ssh-copy-id
В команде указывается открытый ключ, напримерssh-copy-id -i ~/.ssh/id_rsa_another.pub username@your-server-ip
, в это время обратите внимание, что вам также необходимо указать этот открытый ключ при использовании команды ssh для удаленного подключения, иначе по умолчанию будет ~/.ssh/id_rsa.pub Для соответствия, поэтому ваша команда подключения должна быть похожа на эту:ssh -i ~/.ssh/id_rsa_another.pub username@your-server-ip
. -
Сервер SSH может быть настроен так, чтобы не разрешать авторизованный вход с открытым ключом. Проверьте правильность конфигурации в файле /etc/ssh/sshd_config на сервере:
PubkeyAuthentication yes
-
Сервер SSH может быть настроен так, чтобы не разрешать вход пользователя root. Проверьте файл /etc/ssh/sshd_config на сервере, если он содержит
PermitRootLogin no
затем измените его на да
Фундаментальный
Временная диаграмма может лучше всего объяснить проблему: P