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
и hostname1
– username0
но мое имя пользователя на hostname2
– username2
.
- Как заставить пользователя в файле конфигурации ssh
- Какая правильная форма ключевого слова SSH HostnameSuffixes?
- Удаленная команда в файле конфигурации ssh
- Использование кода оболочки для LocalForward в файле конфигурации ssh
- Сценарий манипулирования открытыми ключами SSH в файле authorized_keys
Записи для 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 для использования правильного имени пользователя в каждой ситуации?
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 *
до конца заставит его снова работать для вас.