Я намагаюся встановити деякі універсальні параметри для підстрибування 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 config / середовище ціле, або просто клавіші. Якщо лише ключі, чи можна колись використати колишній?
Моя версія ssh - 5.9v1, шлюз - 5.9v1, а цільовий - 5.3p1. Я вважаю, що це -W
було введено в 5.4, але це не має значення для фінального поля в черзі? використання старшої школи, nc
схоже, не відрізняється.
Я переконався, що я можу вручну надсилати скриньку до кожного поля в рядку. Це вказує на те, що інформація про псевдонім імені хоста не передається, як і коли на шлюзі, я не можу, ssh target
але можу ssh target.example.com
. Це працює з автентично. шлюз і ціль між іншим мають однакове ім'я користувача, саме тому це працює, якщо не конфігурується жодна конфігурація.
Якщо ForwardAgent
або подібний конфігуратор не може висунути цю інформацію, який найбезпечніший спосіб обійти її, зберігаючи .ssh / config на шлюзі з цією інформацією?