J'essaie de placer ma commande ssh à sauts multiples dans le fichier ssh .ssh / config.
Voici mon graphe de connexion: ordinateur portable (je suis ici) ------ & gt; utilisateur ------- & gt; poste de travail
J'ai mis les clés rsa publiques ssh dans 'userver' et 'workstation'. En ce moment, je peux me connecter en tapant cette ligne:
ssh -A -t userserver@userver ssh -A userworkstation@workstation
J'aimerais cependant pouvoir utiliser les capacités du fichier de configuration dans ~ / .ssh / config pour obtenir le même effet, mais en utilisant une commande simple, ce qui me permettrait également de faire une copie rapide avec 'scp'. Le seul problème est que "userver" n'a pas la commande "nc" et que je n'ai pas de super-utilisateur là-bas, juste le contrôle de mon dossier personnel. Néanmoins, j'ai essayé certaines choses:
J'ai ce fichier de configuration dans mon ordinateur portable (~ / .ssh / config):
# laptop config file
Host userver
Hostname userver_hostname
port 22
User server_user
Egalement un autre fichier de configuration dans le serveur (~ / .ssh / config)
# userver config file
Host workstation
Hostname workstation_hostname
port 22
user workstation_username
Avec ces fichiers de configuration, je peux me connecter en tant que
ssh -A -t userver ssh -A workstation
ce qui est une amélioration, mais pas suffisante. J'ai essayé d'ajouter un autre hôte dans la configuration de mon ordinateur portable, comme ceci:
Host hop
ProxyCommand ssh -A -t userver ssh -A workstation
Puis, quand je fais
ssh hop
Je reçois la sortie suivante avec des erreurs et je ne peux pas me connecter:
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
-bash: line 1: $'SSH-2.0-OpenSSH_6.4\r': command not found
Des idées?
la source
J'ai trouvé que la solution suivante fonctionnait beaucoup mieux que d'utiliser netcat (
nc
) comme dans l'autre exemple. Avec netcat, ma connexion était très lente et restait suspendue jusqu'à ce que je frappe quelques touches. De plus, vous n'avez pas besoin d'installer Netcat.Ajoutez ce qui suit à votre
~/.ssh/config
:Ensuite, vous pouvez ssh comme ceci:
Notez également que la raison de votre
ProxyCommand
ne fonctionne pas parce que vous n'obtenez pas quoiProxyCommand
Est-ce que.ProxyCommand
doit créer un tuyau sur lequelssh
peut établir une connexion SSL. En d'autres termes, la commande doit démarrer un processus qui stdin et stdout relierssh
à unsshd
Port. Dans votre configuration, vous établissez une connexion ssh avecProxyCommand
qui reliessh
au shell de commande plutôt qu'à unsshd
Port.la source