Как сгенерировать ssh-ключ для входа на сервер без пароля

Я использовал серверы на amazon AWS, где они присылают мне файл .pem с открытым ключом, и когда я подключаюсь по ssh, все, что мне нужно сделать, это:

ssh -i key.pem user@server

Теперь у меня есть собственный сервер, и я пытаюсь понять, как я могу сделать это с моим сервером, чтобы я мог автоматизировать команды для своего сервера через ssh.

Я предполагаю, что мне нужно сгенерировать этот ключ на моем сервере и скопировать его на мою клиентскую машину. Как сгенерировать этот ключ?


person justspamjustin    schedule 29.08.2012    source источник


Ответы (1)


На клиентском компьютере, с которого вы хотите войти с, запустите ssh-keygen. Для быстрого и простого ключа просто нажмите Enter на все вопросы. Это создаст пару ключей в ~/.ssh. В частности, ~/.ssh/id_rsa — это ваш закрытый ключ (храните его в безопасности), а ~/.ssh/id_rsa.pub — ваш открытый ключ (можно распространять).

Скопируйте свой открытый ключ (~/.ssh/id_rsa.pub) на сервер, на который вы хотите войти на (например, scp ~/.ssh/id_rsa.pub me@myserver:. На сервере запустите cat id_rsa.pub >> .ssh/authorized_keys. Чтобы убедиться, что он имеет правильные разрешения , вы можете запустить chmod 644 ~/.ssh/authorized_keys Кроме того, теперь вы можете удалить файл id_rsa.pub, который вы скопировали.

Вот и все! У вас должен быть вход без пароля от клиента к серверу. Вы должны повторить процесс, поменяв местами клиент и сервер, если хотите войти без пароля с сервера на клиент.

Примечания:

  1. Если каталог ~/.ssh не существует на вашем сервере, лучший способ создать его — это подключиться по ssh с сервера к другому компьютеру (например, к клиенту). Это гарантирует, что он имеет правильные разрешения.
  2. Если вы боитесь, что кто-то получит доступ к клиенту, вы можете защитить ключ паролем (одно из подсказок при запуске ssh-keygen), но тогда вам придется вводить этот пароль каждый раз, когда вы входите в систему. Решение этой проблемы заключается в следующем: используйте ssh-агент.
person nevsan    schedule 29.08.2012