Использовать X SSH-ключ при входе в Y удаленному пользователю?

Я ищу способ установить конкретный SSH-ключ при входе на удаленный хост с конкретным именем пользователя. Возможно ли это в конфигурационном файле SSH?

Например:

Используйте ключ «id_rsa-test» для имени пользователя «testuser»:

ssh testuser@host1 ssh testuser@host2 ssh testuser@host3 

Используйте ключ «id_rsa» для всех других пользователей.

 ssh root@host1 ssh admin@host2 ssh user@1.2.3.4 

Есть ли способ настроить это?

2 Solutions collect form web for “Использовать X SSH-ключ при входе в Y удаленному пользователю?”

Спасибо @xhienne ( ссылка для комментариев ) за ваше предложение.

Добавление следующего в ssh_config, похоже, решило проблему:

 Match User testuser IdentityFile ~/.ssh/id_rsa-test 

Этот блок следует разместить над Host * чтобы отправить id_rsa-test перед id_rsa для testuser.

Предполагая, что вы используете OpenSSH, вы можете настроить свой файл ~/.ssh/config для каждого, тогда вам также не нужно будет указывать пользователя, вы можете создать свое собственное имя:

 host host1 User testuser IdentityFile ~/.ssh/id_rsa-test 

то когда вы сделаете ssh host1 он сделает это автоматически или, поскольку вы будете использовать host1 как другие пользователи, вы тоже можете сделать

 host test-host1 User testuser IdentityFile ~/.ssh/id_rsa-test Hostname host1 

затем выполните ssh test-host1

и вы можете сделать то же самое для каждого хоста, которого хотите.

Любой хост, который не соответствует записи в вашем файле ssh_config (5), будет использовать поведение по умолчанию – или использовать значения по умолчанию, указанные в ssh_config в глобальной настройке, то есть не внутри хост-блока

ssh_config не поддерживает сопоставление по именам пользователей, но вы можете написать сценарий оболочки, чтобы обнаружить это для вас. Вот хрупкая в bash, которая предполагает, что ваше имя пользователя / хост всегда является первым аргументом и будет ломаться, если это не так:

 ssh() { if [[ "$1" =~ ^testuser@ ]]; then command ssh -i ~/.ssh/id_rsa-test "$@" else command ssh "$@" fi } 
  • Преобразовать закрытый ключ OpenSSH в закрытый ключ SSH2
  • Преобразование секретного ключа SSH2 RSA в .pem с помощью openssl
  • Как включить аутентификацию без пароля на удаленном сервере в качестве другого пользователя?
  • Как сгенерировать записи SSHFP с помощью OpenWrt / Dropbear?
  • Могу ли я создать контейнер Docker из Dockerfile интерактивным способом с выделением некоторого псевдо TTY?
  • SSH просит меня ввести кодовую фразу, которая не имеет кодовой фразы
  • Очень медленное соединение SSH, не связанное с опцией GSSAPIAuthentication
  • Закрытый ключ OpenSSH запутан: Ключ нагрузки: неверный формат
  • Есть ли один вкладыш, который может отображать отпечатки с открытым ключом с помощью authorized_keys в качестве входных данных?
  • Как узнать, могу ли я использовать ssh keypairs?
  • Открытый ключ ssh не копируется
  • Linux и Unix - лучшая ОС в мире.