Próbuję ustawić uniwersalne opcje dla odbijających połączeń ssh. Oto mój ~/.ssh/config
plik, 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 *%via
z Host
aliasó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 ForwardAgent
przechodzi 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 -W
został wprowadzony w 5.4, ale to nie powinno mieć znaczenia dla końcowego pola w linii? korzystanie ze starszej szkoły nc
nie 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 target
ale 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 ForwardAgent
lub 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?