SSH с бастионным хостом и разными именами пользователей

Я хочу войти в сервер linux, используя два последовательных хоста bastion. Мой файл .ssh/config выглядит примерно так:

 Host * User username0 Host hostname0 Hostname foo Host hostname1 Hostname bar Port 0 ProxyCommand ssh -W %h:%p hostname0 Host hostname2 User username2 Hostname bat Port 1 ProxyCommand ssh -W %h:%p hostname1 

Мое имя пользователя на hostname0 и hostname1username0 но мое имя пользователя на hostname2username2 .

Записи для hostname0 и hostname1 работают должным образом. Но запись для hostname2 игнорирует параметр « User .

ssh hostname2 вызывает это отображение:

 username0@hostname2's password: 

Если я изменил ProxyCommand на hostname2 на ssh -l username2 -W %h:%p hostname1 то он запрашивает у меня пароль для username2 @ hostname1. username2@hostname1's password который имеет смысл, поскольку я прошу его войти в hostname1 как username2 , но он, очевидно, не работает, так как мое имя пользователя фактически является username0 .

Как настроить ssh для использования правильного имени пользователя в каждой ситуации?

  • Почему ssh-copy-id требует подробного LogLevel для работы в этом случае?
  • Какая правильная форма ключевого слова SSH HostnameSuffixes?
  • Использование SSH для подключения к новому серверу без сохранения ключей хоста в файле $ HOME / .ssh / known_host
  • Конфигурация ssh без запроса пароля
  • SSH-Config - Есть ли способ определить, локальный или удаленный?
  • Не удается подключиться через sshfs, потому что неправильная конфигурация в файле ~ / .ssh / config
  • Не удалось согласовать алгоритм ssh
  • Использование ssh -t работает, но с использованием ProxyCommand ssh -W не
  • One Solution collect form web for “SSH с бастионным хостом и разными именами пользователей”

    Используйте другой порядок блоков Host . Host * соответствует всем, и ssh_config не перезаписывает уже сохраненные записи:

     Host hostname0 Hostname foo Host hostname1 Hostname bar Port 0 ProxyCommand ssh -W %h:%p hostname0 Host hostname2 User username2 Hostname bat Port 1 ProxyCommand ssh -W %h:%p hostname1 Host * User username0 

    Перемещение Host * до конца заставит его снова работать для вас.

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