Solution 1 :
Bien sûr; utilisez simplement le transfert/tunneling de port SSH. Démarrez une connexion ssh vers la machine "proxy" à l'aide de la commande suivante :
ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
$PROXYHOST
:la machine à laquelle vous avez un accès SSH$REMOTEHOST
:la machine à laquelle $PROXYHOST peut se connecter, mais pas vous. Utilisez un nom d'hôte ou une IP qui$PROXYHOST
peut utiliser pour faire référence à la machine$SSHPORT
:le port que sshd écoute sur remotehost ; très probablement 22$LOCALPORT
:le port sortant local SSH s'ouvre sur votre machine locale qui transmet au port 22 sur$REMOTEHOST
Laissez cette connexion en place pour que le tunnel continue de fonctionner. Vous pouvez également ajouter -N
à la commande afin que cette connexion n'affiche pas de shell distant et que vous ne le fermiez pas accidentellement plus tard.
Une fois le tunnel établi, procédez comme suit :
ssh -p $LOCALPORT localhost
Cela tente une connexion SSH à votre machine locale sur le port qui est transféré au $REMOTEHOST
le port SSH de.
Solution 2 :
Si vous souhaitez mettre à jour la configuration de votre client, vous pouvez configurer votre client pour qu'il utilise votre boîtier de passerelle comme proxy. Votre boîte de relais aura besoin de netcat installé, et pour de meilleurs résultats, vous voudrez avoir une configuration d'authentification basée sur une clé.
Voici ce que j'utilise dans mon .ssh/config pour me connecter via un autre hôte.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh [email protected] "/bin/netcat -w 1 internal-ssh-host 22"
Avec ce qui précède, vous pouvez simplement exécuter la commande ssh internal-ssh-host-proxy depuis votre ordinateur client.
Si l'hôte proxy SSH possède le client OpenSSH 5.4 ou supérieur, vous n'avez pas besoin de netcat, et à la place, vous pouvez utiliser le mode netcat intégré.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh [email protected] -W internal-ssh-host:22
Solution 3 :
Parmi les réponses présentées, Zordache est la meilleure solution globale. Cependant pour la postérité, si vous souhaitez simplement vous connecter ad-hoc sans modifier votre config, utilisez le -t
drapeau pour allouer un pseudo terminal avec l'exécution de ssh directement sur le relais.
ssh -t relay.example.com ssh internal.example.com
Solution 4 :
Vous pouvez transférer automatiquement les connexions à l'aide d'OpenSSH. Dans votre ~/.ssh/authorized_keys
fichier, vous pouvez spécifier une commande à exécuter, qui peut être un SSH vers une deuxième machine.
[ssh client] ----> [ssh relay server] ----> [ssh target server]
you modified authorized_keys target machine
Ce que vous finirez par voir, ce sont deux invites pour Password:
:un pour le serveur relais et un pour le serveur cible. Vous pouvez toujours supprimer ce comportement en utilisant des certificats.