Как подключиться по ssh без пароля?
Всякий раз, когда я выполняю команду
ssh user@host
меня просят ввести пароль. Как избежать этого?
Источник: Stack Overflow на русском
Всякий раз, когда я выполняю команду
ssh user@host
меня просят ввести пароль. Как избежать этого?
Это можно сделать, используя публичные ключи. На примере OpenSSH. Предположим, нужно войти с хоста X на хост Y. Заходим на хост X и создаем ключи:
ssh-keygen -t rsa
Далее заходим на хост Y и создаем папку ~/.ssh
ssh user@Y mkdir ~/.ssh
Копируем публичный ключ с хоста X на Y
cat ~/.ssh/id_rsa.pub | ssh user@Y 'cat >> .ssh/authorized_keys'
После этого по ssh можно входить с хоста X на Y без пароля.
Обновление
В комментариях @AntonioK рекомендует не использовать cat
для копирования публичного ключа. Вместо этого следует воспользоваться специальной утилитой ssh-copy-id
, которая, помимо прочего, заботится о верном уровне доступа к ключам.
генерируем ключ на хосте X
ssh-keygen -t rsa
затем набираем
ssh-copy-id user@Y
удаленный хост вместо Y