Если вы специально не указали это сделать иначе, SSH предлагает ~/.ssh/id_<type>
(например, ~/.ssh/id_rsa
) для аутентификации.
Вы создали ключ в нестандартном месте (в ~/.ssh, но с нестандартным именем файла).
Поскольку аутентификация с открытым ключом в целом работает для вас, первое, что я хотел бы проверить, это то, что SSH предлагает правильный ключ для аутентификации. Это можно проверить, запустив ssh
с ключом -v
чтобы включить один уровень подробного (отладочного) вывода. Среди сообщений вы должны увидеть что-то вроде:
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/you/.ssh/something
Посмотрите, какие открытые ключи он предлагает. (У вас может быть несколько Offering ... public key
строк открытого ключа для разных файлов ключей.) Если он не предлагает ваш вновь созданный ключ, то этот ключ никогда не будет кандидатом на аутентификацию.
Если ваш недавно созданный ключ не предлагается, попробуйте явно указать SSH, предложив его, добавив ключ -i
. Например, ssh -i ~/.ssh/my-ssh-key -v username@hostname
. Обратите внимание, что SSH добавит саму .pub
к имени, где ему необходим доступ к открытому ключу, поэтому вы даете имя для файла закрытого ключа.
Если это сработает, вы можете отредактировать ваш ~/.ssh/config
и указать SSH предложить этот ключ этому хосту. Например, вы можете добавить блок, как показано ниже. Не забудьте добавить его над любым блоком Host *
который у вас может быть.
Host hostname
User username
IdentityFile ~/.ssh/my-ssh-key
Тогда вы сможете подключиться, используя только ssh hostname
.
Смотрите man 1 ssh
и man 5 ssh_config
для более подробной информации.