Existe-t-il un moyen, en une seule commande, d'établir une connexion ssh de mon ordinateur A, via l'ordinateur B, vers l'ordinateur C, de sorte que j'aie accès au shell sur l'ordinateur C?
Une ride (qui semble exclure simplement le transfert de la connexion ssh à l'aide de l'option -L) est que j'ai le mot de passe du compte sur l'ordinateur B et que le compte sur l'ordinateur B est autorisé à se connecter au compte sur l'ordinateur C, mais Je n'ai pas le mot de passe du compte sur l'ordinateur C.
Réponses:
J'ai compris que vous vouliez simplement vous connecter à l'ordinateur C, pas vraiment tunneler quoi que ce soit de A à C. Donc, cela devrait faire l'affaire:
Vous devrez peut-être saisir deux fois les mots de passe, d'abord pour l'ordinateur B, puis pour l'ordinateur C, mais cela peut être évité en utilisant l'authentification par paire de clés de ssh.
la source
ssh -t computer-b "ssh -t computer-c 'ssh computer-d'"
: DVous souhaitez probablement utiliser la ProxyCommand de SSH: http://benno.id.au/blog/2006/06/08/ssh_proxy_command
la source
Si vous utilisez des clés ssh, vous pouvez générer une nouvelle clé pour la machine B et l'utiliser pour la connexion de A à B. Sur la machine B, vous pouvez ajouter
dans le
~/.ssh/authorized_keys
fichier. Cela signifie que chaque fois que vous vous connectez à B avec cette clé ssh, il exécute lassh C
commande.Je ne sais pas si cela fonctionne avec scp.
la source
Utilisation
ProxyCommand
Tu vois
man ssh_config
. Je recommande d'utiliserProxyCommand
. Prenons votre scénario d'origine:Modifiez
~/.ssh/config
avec le contenu suivant.Vous pourrez désormais accéder de manière transparente à l'ordinateur C. Par exemple
Avantages de cette méthode
Plus sécurisé
Vous n'avez besoin que de votre clé privée pour être sur l'ordinateur A (votre ordinateur). La
nc
commande agira comme un proxy dans lequel SSH cryptera le trafic. Cela inclut l'authentification. C'est une très mauvaise idée de distribuer votre clé privée sur plusieurs serveurs (car tout serveur compromis avec votre clé privée compromet finalement votre clé privée).Correspond à plusieurs destinations
On peut faire correspondre plusieurs ordinateurs de destination à l'aide
Host
. Un seul ordinateur ou tout ordinateur au sein d'un réseau spécifique (par exemple192.168.35.0/24
dans l'exemple ci-dessus) à proxy via l'ordinateur B. Il sert également d'alias.Dans l'exemple ci-dessus, il effectuera un proxy via l'ordinateur B pour accéder à l'adresse IP.
Mandataires en guirlande
En utilisant cette méthode, vous pouvez chaîner autant de proxys automatiques que nécessaire. Par exemple, vous pouvez ajouter un ordinateur D qui n'est accessible qu'à partir de l'ordinateur C et il fonctionnera de manière transparente.
ssh computerd
sera automatiquement proxy via l'ordinateur C et l'ordinateur B dans lesssh_config
exemples ci-dessus .la source