Если ключ не называется id_rsa, он не работает

14

Я создал ключ для соединения в SSH с парольной фразой. Я назвал свой ключ id_rsa_admin. Когда я вхожу, отображается следующее сообщениеPermission denied (publickey).

В журналах я обнаружил, что ssh ищет файл id_rsaи, следовательно, не находит нужный файл.

Я считаю, что если ключ не назван, id_rsaон не работает.

Как подключиться в SSH?

~/.ssh/id_rsa_admin

ssh admin@vps718449.ovh.net -p 9215
Матье
источник

Ответы:

39

Ответ Арроникаля хорош для одноразовой связи, но в долгосрочной перспективе будет болезненным. Чтобы sshвсегда использовать этот ключ при подключении к этому серверу, вы можете добавить его на свой ~/.ssh/config(или создать, если он не существует):

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin

Тогда вы можете связаться с просто ssh admin@vps718449.ovh.net -p 9215. В качестве дополнительного бонуса вы также можете настроить порт:

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin
    Port 9215

Тогда вы можете связаться с просто ssh admin@vps718449.ovh.net. Еще больше:

Host vps718449.ovh.net vps
     Hostname vps718449.ovh.net
     User admin
     IdentityFile ~/.ssh/id_rsa_admin
     Port 9215

Тогда просто ssh vpsбудет работать! Конечно, vpsэто просто пример, вы можете использовать любой другой псевдоним, который вы хотите (например, если у вас более одного VPS). Смотрите man ssh_configсписок опций, которые вы можете установить там.

fkraiem
источник
@fkraiem спасибо. Как сделать с тремя ключами?
Матье
1
@ Матье Почему три ключа? Если это для трех разных хостов, просто добавьте одну запись для каждого хоста, каждый с соответствующим ключом.
fkraiem
@fkraiem У меня 3 разных ключа на одном сервере, но для 3 пользователей
Матье
@Mathieu Я не могу подтвердить это прямо сейчас, но я думаю, что просто добавление трех IdentityFileстрок в Hostразделе должно работать. Кроме того, если вы введете Userстроку, этот пользователь станет пользователем по умолчанию при подключении к этому хосту, но вы все равно можете переопределить его @.
fkraiem
@fkraiem Спасибо большое. Это работает, но отображается следующая ошибка: «Агент признал невозможность подписи с помощью ключа». Я использую «SSH_AUTH_SOCK = 0» для подключения, но это нужно делать при каждом перезапуске. Есть ли еще приветствие?
Матье
16

Вам необходимо использовать -iопцию для вашей команды ssh, указав путь к вашему ключу. Измененная команда будет:

ssh -i ~/.ssh/id_rsa_admin admin@vps718449.ovh.net -p 9215
Arronical
источник
Спасибо. В вашем ответе отображается следующая ошибка: «ssh: не удалось разрешить имя хоста i: имя или служба неизвестна»
Матье
5
Установка -iдо имени хоста тоже работает; Я думаю, что Матье просто забыл дефис. : p
fkraiem