J'essaie de mettre en place des options universelles pour rebondir les connexions ssh. Voici mon ~/.ssh/config
dossier, abrégé:
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
Lorsque j'utilise en *%via
utilisant les Host
alias, j'obtiens:
% 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
Cependant, si j'utilise
% ssh target.example.com%via
J'ai frappé le serveur cible, mais en tant que mauvais utilisateur et sans authentification de clé publique.
Je pense que ma question, à ce stade, est de savoir si cette méthode de rebond, lors de l'utilisation ForwardAgent
, passe par l'ensemble de ma configuration / environnement ssh, ou simplement par des clés. S'il ne s'agit que de clés, les premières peuvent-elles être utilisées d'une manière ou d'une autre?
Ma version ssh est 5.9v1, la passerelle est 5.9v1 et la cible est 5.3p1. Je crois que cela a -W
été introduit en 5.4, mais cela ne devrait pas avoir d'importance pour la dernière case en ligne? utiliser l'ancienne école nc
ne semble pas différent.
J'ai vérifié que je peux manuellement ssh dans chaque case de la ligne. Cela indique que les informations d'alias de nom d'hôte ne sont pas transmises, car lorsque sur la passerelle, je ne peux pas ssh target
mais je peux ssh target.example.com
. Cela fonctionne avec l'authentification pubkey. la passerelle et la cible ont d'ailleurs le même nom d'utilisateur, c'est pourquoi cela fonctionne si aucune configuration n'est poussée.
Si ForwardAgent
ou une configuration similaire ne peut pas pousser ces informations, quel est le moyen le plus sûr de les contourner, en conservant une .ssh / config sur la passerelle avec ces informations?