Я пытаюсь настроить некоторые универсальные параметры для подпрыгивающих соединений SSH. Вот мой ~/.ssh/config
файл, сокращенно:
Host *%via
ProxyCommand ssh gateway -W $(echo %h | cut -d%% -f1) %p
Host gateway
HostName gateway.example.com
User username
ForwardAgent yes
IdentityFile keypathg
Host target
User username
HostName target.example.com
IdentityFile keypatht
Когда я использую *%via
использование Host
псевдонимов, я получаю:
% ssh -vvv target%via
OpenSSH_5.9p1, OpenSSL 0.9.8y 5 Feb 2013
debug1: Reading configuration data /Users/myuser/.ssh/config
debug1: /Users/myuser/.ssh/config line 5: Applying options for *
debug1: /Users/myuser/.ssh/config line 12: Applying options for *%via
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: auto-mux: Trying existing master
debug1: Control socket "/Users/myuser/.ssh/tmp/target%via_22_myuser" does not exist
debug2: ssh_connect: needpriv 0
debug1: Executing proxy command: exec ssh -A gateway -W $(echo target%via | cut -d% -f1):22
debug1: permanently_drop_suid: 501
debug1: identity file /Users/myuser/.ssh/id_rsa type -1
debug1: identity file /Users/myuser/.ssh/id_rsa-cert type -1
debug1: identity file /Users/myuser/.ssh/id_dsa type -1
debug1: identity file /Users/myuser/.ssh/id_dsa-cert type -1
ssh_exchange_identification: Connection closed by remote host
Однако, если я использую
% ssh target.example.com%via
Я попал на целевой сервер, но как неправильный пользователь и без аутентификации pubkey.
я думаю, что мой вопрос, на данный момент, заключается в том, является ли этот метод подпрыгивания, при использовании ForwardAgent
, проходить через мою конфигурацию SSH / целом или просто ключи. Если только ключи, можно ли как-то использовать первое?
Моя версия ssh - 5.9v1, шлюз - 5.9v1, а цель - 5.3p1. Я считаю, что -W
был введен в 5.4, но это не должно иметь значения для последней строки в строке? использование старшей школы, nc
кажется, ничем не отличается.
Я проверил, что я могу вручную ssh для каждого поля в строке. Это указывает на то, что информация о псевдониме имени хоста не передается, как на шлюзе, я не могуssh target
но могу ssh target.example.com
. Это работает с аутентификацией pubkey. Шлюз и цель случайно имеют одно и то же имя пользователя, поэтому это работает, если ни один конфиг не передан.
Если ForwardAgent
или подобный конфиг не может выдвинуть эту информацию, какой самый разумный способ обойти это, сохраняя .ssh / config на шлюзе с этой информацией?