Как заставить ssh использовать определенный закрытый ключ?

С ssh -i <private key filename> Вы можете указать ssh использовать дополнительный закрытый ключ для проверки подлинности.

В документации не ясно, как явно использовать только этот ключ.

3 ответа

Решение

Вы можете использовать опцию IdentitiesOnly:

ssh -o "IdentitiesOnly=yes" -i <private key filename> <hostname>

Альтернативой может быть создание пары ключей с помощью

      ssh-keygen

и создайте специальную конфигурацию для указанного хоста и соответствующего закрытого ключа

Отредактируйте ~/.ssh/config

      Host handy_server
    HostName x.y.z.w
    IdentityFile ~/.ssh/handy
    IdentitiesOnly yes
    User userk
    Port 22

Принятый ответ неверен, поскольку все файлы идентификации в конфигурации по умолчанию также будут использоваться в дополнение к тем, которые указаны в параметреаргументы. Это может стать проблемой, если устройство, к которому вы подключаетесь, имеет ограничение на количество попыток аутентификации, которое можно превысить, прежде чем в конечном итоге будет получен правильный ключ.

Чтобы заставить его использовать один файл закрытого ключа и только этот ключ, вы можете указать несуществующий файл конфигурации с помощьюаргумент:

      ssh -F /dev/null -o IdentitiesOnly=yes -i <private key filename> <hostname>

ИспользуяАргумент покажет используемые ключи. Теперь вы должны увидеть, что используется только один. Найдите строки «Попытается использовать ключ:».

Другие вопросы по тегам