
У меня есть ключевой файл с именем KEY
, в котором есть KEY
и KEY.pub
. Я загружаю публикацию в authorized_keys
, и добавляю частную с помощью
ssh-add /home/user/.ssh/KEY
Но когда я пытаюсь подключиться , он постоянно запрашивает у меня пароль.ssh [email protected]
Если я сгенерирую ключ ssh-keygen
и оставлю имя ключа по умолчанию, загрузив публичный и загрузив частный, этонезапросить пароль.
В чем может быть проблема?
решение1
С помощью вы можете получить вывод отладки, и он, вероятно, скажет вам, что не может пройти аутентификацию с (файл ключей ssh по умолчанию). Ответ заключается в том, чтобы указать ssh, какой ключ использовать:ssh -vvv [email protected]
~/.ssh/id_rsa
ssh -i /home/user/.ssh/KEY [email protected]
Вы также можете добавить свой ключевой файл для каждого хоста в свой .ssh/config
, тогда вам останется только ввести данные ssh host.com
, и пользователь/ключ будут выбраны автоматически.
Пример записи для .ssh/config(Более подробную информацию см. здесь man ssh_config
):
Host mysshserver ssh.host.com
HostName ssh.host.com
User myusername
IdentityFile ~/.ssh/mykeyfile
Объяснение ключевых файлов из man ssh
:
-i identity_file
Selects a file from which the identity (private key) for RSA or
DSA authentication is read. The default is ~/.ssh/identity for
protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro‐
tocol version 2. Identity files may also be specified on a per-
host basis in the configuration file. It is possible to have
multiple -i options (and multiple identities specified in config‐
uration files).
решение2
Чтобы правильно настроить файлы ключей (Какздесь), обратите внимание на следующее:
Если у вашего хост- .ssh
каталога и файлов нет нужных прав доступа И/ИЛИ у вашего удаленного домашнего каталога пользователя нет нужных прав доступа, ssh будет продолжать запрашивать пароль, хотя и найдет файл ключа.
Вы можете увидеть, предлагается ли ваш ключевой файл/файлы с помощьюssh -vvv user@host
Пример вывода:
debug1: Offering DSA public key: /Users/<user>/.ssh/id_dsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
Проверьте как домашний каталог удаленного пользователя, так и .ssh
разрешения удаленного каталога.
Например, разрешения должны быть такими:
$ls -ld .ssh
drwx------ 2 <owner> <group> 4096 2011-12-29 20:39 .ssh
$ls -ld ~/
drwxr-xr-x 28 <owner> <group> 4096 2011-12-29 20:15 /home/<user>/