GNU/Linux >> Tutoriels Linux >  >> Linux

Ssh - Corriger les paramètres du fichier de configuration Ssh pour créer un tunnel vers une troisième machine ?

J'essaie de tunnel vers un serveur via un serveur pont. Jusqu'à présent, j'ai pu le faire fonctionner correctement à partir du shell de commande en utilisant la commande suivante :

ssh -A -t [email protected] ssh -A [email protected]

Mais j'ai essayé d'intégrer cela dans mon ~/.ssh/config fichier et j'ai des problèmes. J'ai essayé :

Host axp
  User          remote_userid
  HostName      remoteserver.com
  IdentityFile  ~/.ssh/id_rsa.eric
  ProxyCommand ssh -A -t [email protected]_userid.com ssh -A [email protected]%h

Mais quand je le fais, je reçois le message d'erreur suivant de remoteserver.com et je ne sais pas ce qui en est la cause :

ksh :SSH-2.0-OpenSSH_6.8^M :introuvable

Je sais que lorsque je me connecte à remoteserver.com , mon shell est /usr/bin/ksh .

J'ai essayé d'ajouter des arguments de chemin aux commandes ssh dans le fichier de configuration, mais cela n'a fait aucune différence.

Des idées de ce que ça peut être ?

Réponse acceptée :

La réponse de Jakuje est juste, mais depuis OpenSSH 7.3 , vous pouvez maintenant utiliser -J ProxyJump ce qui est plus facile. Voir mes notes :

OpenSSH 7.3 ou supérieur

Utiliser ProxyJump . Comme expliqué dans le manuel :

-J [[email protected]]host[:port]
Connectez-vous à l'hôte cible en établissant d'abord une connexion ssh avec l'hôte de saut, puis en établissant un transfert TCP vers la destination finale à partir de là. Plusieurs sauts de saut peuvent être spécifiés séparés par des virgules. Il s'agit d'un raccourci pour spécifier une directive de configuration ProxyJump.

ProxyJump ~/.ssh/config exemple

~/.ssh/config

Host server1
  Hostname server1.example.com
  IdentityFile ~/.ssh/id_rsa

Host server2_behind_server1
  Hostname server2.example.com
  IdentityFile ~/.ssh/id_rsa
  ProxyJump server1

Connectez-vous avec

ssh server2_behind_server1 -v

Ajouter -v pour une sortie détaillée

ProxyJump -J Exemple de ligne de commande

~/.ssh/config

Host server1
  Hostname server1.example.com
  IdentityFile ~/.ssh/id_rsa

Host server2
  Hostname server2.example.com
  IdentityFile ~/.ssh/id_rsa

Connectez-vous avec

ssh server2 -J server1 -v

Ou utilisez -o

ssh server2 -o 'ProxyJump server1' -v

OpenSSH 5.4 ou supérieur

Utilisez ProxyCommand avec -W

~/.ssh/config

Host server1
  Hostname server1.example.com
  IdentityFile ~/.ssh/id_rsa

Host server2
  Hostname server2.example.com
  IdentityFile ~/.ssh/id_rsa
  ProxyCommand ssh server1 -W %h:%p

Connectez-vous avec

ssh server2 -v

Ou utilisez -o

ssh server2 -o 'ProxyCommand ssh server1 -W %h:%p' -v

OpenSSH ci-dessous 5.4

~/.ssh/config

Host server1
  Hostname server1.example.com
  IdentityFile ~/.ssh/id_rsa

Host server2
  Hostname server2.example.com
  IdentityFile ~/.ssh/id_rsa
  ProxyCommand ssh server1 nc %h %p 2> /dev/null

Connectez-vous avec :

ssh server2 -v

Ou utilisez -o

ssh server2 -o 'ProxyCommand ssh server1 nc %h %p 2> /dev/null' -v

Sources

-J ajouté dans OpenSSH 7.3

  • ssh(1) :ajoutez une option ProxyJump et l'indicateur de ligne de commande -J
    correspondant pour permettre une indirection simplifiée via un ou plusieurs bastions SSH
    ou "jump hosts".

-W ajouté dans OpenSSH 5.4

  • Ajout d'un "mode netcat" à ssh(1) :"ssh -W host:port …" Cela connecte
    stdio sur le client à un seul port de redirection sur le serveur. Cela
    permet, par exemple, d'utiliser ssh comme ProxyCommand pour router les connexions
    via des serveurs intermédiaires. bz#1618

Linux
  1. Exécution d'un fichier exe ou bat sur une machine Windows distante à partir de * nix

  2. Maintenir la session SSH en vie

  3. autorisation refusée sur le fichier authorized_key

  4. SSH - Comment inclure la commande -t dans le fichier ~/.ssh/config

  5. Pouvez-vous avoir plus d'un fichier ~/.ssh/config ?

Utilisation du fichier de configuration SSH

Comment configurer l'authentification basée sur la clé Ssh pour Github en utilisant le fichier ~/.ssh/config ?

Utiliser le fichier de configuration SSH pour gérer les connexions SSH à divers serveurs distants

Ajouter la clé publique au fichier known_hosts

Tunnel SSH HTTPS

Transférer SSH via un tunnel SSH