Использовать 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 } 
  • Как узнать, могу ли я использовать ssh keypairs?
  • Очень медленное соединение SSH, не связанное с опцией GSSAPIAuthentication
  • Закрытый ключ OpenSSH запутан: Ключ нагрузки: неверный формат
  • Как включить аутентификацию без пароля на удаленном сервере в качестве другого пользователя?
  • SSH просит меня ввести кодовую фразу, которая не имеет кодовой фразы
  • Какова цель случайного изображения для пользовательских (не хостов) SSH-ключей?
  • pem file difference - ssh-keygen vs openssl
  • Имеется ли в системе центральный репозиторий ключей SSH? Использует ли SSH keygen закрытый ключ в этом месте?
  • Проверьте наличие имени хоста под настраиваемым портом в known_hosts
  • Как слить ключи или обработать ключи с тем же именем?
  • Interesting Posts

    Поддерживать 100 экземпляров программы

    Как установить Linux на Playstation 2

    Нет данных xauth; используя фальшивую аутентификацию. Не удается отобразить удаленные окна

    Черно-белый (сероватый цвет) консоль и X11

    Перенаправить почту, адресованную конкретному адресу на отдельные почтовые серверы – postfix

    Создать раздел (стандартный раздел и физический том LVM) в установке CentOS

    Пользовательский движок OpenSSL при работе в Apache через mod_ssl

    Разрешить пользователю вводить имя пользователя перед монтированием общего диска

    Создание новой виртуальной машины в VirtualBox, работающей на CentOS и Windows 10

    Удалить файлы с совпадением только из некоторых подкаталогов

    Как сортировать команды grep и sort?

    Как установить переменные среды в MATE?

    слияние, которое работает с детализацией слов вместо строки

    Сценарий для дублирования установки Debian?

    Почему пакеты отвергаются даже через правило, которое принимает их все перед рукой?

    Linux и Unix - лучшая ОС в мире.