Próbuję ustawić uniwersalne opcje dla odbijających połączeń ssh. Oto mój ~/.ssh/configplik, w skrócie:
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
Kiedy korzystam *%viaz Hostaliasów, otrzymuję:
% 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
Jeśli jednak wykorzystam
% ssh target.example.com%via
Uderzyłem w serwer docelowy, ale jako niewłaściwy użytkownik i bez uwierzytelnienia klucza publicznego.
Myślę, że moim pytaniem w tym momencie jest to, czy ta metoda podskakiwania podczas używania ForwardAgentprzechodzi przez moją konfigurację / środowisko ssh w całości, czy tylko klucze. Jeśli tylko klucze, to czy można użyć tego pierwszego w jakiś sposób?
Moja wersja ssh to 5.9v1, brama to 5.9v1, a cel to 5.3p1. Wydaje mi się, że -Wzostał wprowadzony w 5.4, ale to nie powinno mieć znaczenia dla końcowego pola w linii? korzystanie ze starszej szkoły ncnie wydaje się niczym innym.
Sprawdziłem, że mogę ręcznie ssh do każdego pola w linii. Oznacza to, że informacje o aliasie nazwy hosta nie są przekazywane, tak jak w bramie nie mogę, ssh targetale mogę ssh target.example.com. Działa z auth pubkey. Brama i cel nawiasem mówiąc mają tę samą nazwę użytkownika, dlatego działa to, jeśli nie zostanie przekazana żadna konfiguracja.
Jeśli ForwardAgentlub podobna konfiguracja nie może wypchnąć tych informacji, jaki jest najbezpieczniejszy sposób na obejście ich, utrzymywanie .ssh / config w bramie z tymi informacjami?