Fourre Tout

C'est mon pense-bête

Outils pour utilisateurs

Outils du site


linux:ssh

ssh : configuration, utilisation

On désire ouvrir une connexion ssh depuis une machine locale (d'un réseau quelconque) sur différentes machines distantes (en général à l'intérieur d'un réseau sécurisé) en passant par une passerelle :

  • machine locale : locale.ici
  • machine passerelle : passerelle.la
  • machine cible : cible.la
  • serveur d'impression : imprimeur.la
  • serveur de forums : forum.la

Schéma tunnel ssh

Exemples d'utilisation de ssh

D'après la doc simple mais inexacte de http://www.sukria.net/fr/index.php?s=tunnel+ssh et celle correcte mais moins simple de http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/openssh.html

ouvrir un tunnel permanent

  • commande à exécuter sur la machine locale.ici pour ouvrir un tunnel afin rediriger les commande ssh (port 22) vers la machine cible.la en passant par passerelle.la ; moi est le nom d'utilisateur sur la machine passerelle.la :
ssh -N -f -L 2222:cible.la:22 moi@passerelle.la

exécuter une commande par le tunnel

  • exécuter une commande sur cible.la par le tunnel :
ssh -p 2222 moi@localhost ls -l
ssh -p 2222 moi@localhost '(uname -a ;ls -l PERSO/)'
  • attention, pour scp, la redirection de port se fait avec l'option -P :
scp -p -P 2222 c1.ods c2.ods moi@localhost:PERSO/
scp -p -P 2222 moi@localhost:/local/tempo/f .

tunnel pour lire les forums

  • créer un tunnel pour lire les forums (port 119) sur le serveur forum.la :
ssh -N -f -l moi -L 9119:forum.la:119 passerelle.la
  • puis configurer le lecteur de forums ainsi :
    • serveur : localhost
    • port : 9119
    • NB : si le serveur exige une connexion sécurisée, il faut utiliser le port 563 à la place du port 119

tunnel pour impression

  • créer un tunnel pour se connecter au serveur d'imprimantes imprimeur.la :
ssh -N -f -l moi -L 9631:imprimeur.la:631 passerelle.la
  • lister et imprimer :
lpq -U moi -h localhost:9631 -PmDvert1
lpr -U moi -H localhost:9631 -PmDvert1

Connexion ssh simplifiée à travers un tunnel

d'après http://linuxfr.org/tips/581.html, par Sylvain Forêt, amendé par mchanaud

Vous êtes sur une machine (locale.ici) et vous voulez vous connecter à une machine distante (cible.la) qui est sur un réseau privé, en faisant un tunnel à travers une passerelle (passerelle.la). Vous effectuez donc la commande suivante:

ssh -L [port locale.ici]:[ip de cible.la]:[port ssh de cible.la] passerelle.la

où [port locale.ici] est un port supérieur à 1024, à moins que vous ne soyez root, et [port ssh de cible.la] est le plus souvent 22.

  • Pour vous connecter à cible.la il vous faut ensuite taper:
ssh -p [port locale.ici] -l [utilisateur de cible.la] localhost

Mais avoir à se rappeler du port, de l'utilisateur et les écrire à chaque fois est fatiguant, et c'est là le coeur de cette astuce.

  • Éditez votre ~/.ssh/config (sur la machine locale.ici) :
 Host cible.la
   User [utilisateur de cible.la]
   HostName localhost <-- ici on dit que cible.la est en realité localhost
   Port [port local]  <-- celui qu'on a ouvert avec ssh -L
  • Il vous suffit maintenant d'entrer la commande suivante pour vous connecter à cible.la :
ssh cible.la
~jce : et ça marche
  • du coup, ça simplifie aussi les choses pour rsync (qui utilise par défaut ssh) :
locale.ici> rsync -avvz hal cible.la:tmp/
opening connection using ssh cible.la rsync --server -vvlogDtprz . tmp/

Documents associés

FilenameFilesizeLast modified
openssh.pdf45.9 KiB2021/04/11 13:48
securiser_connexions_ssh.pdf156.6 KiB2021/04/11 13:48
sukria_tunnel_ssh.pdf25.8 KiB2021/04/11 13:48
tunnel_ssh.pdf125.7 KiB2021/04/11 13:48
tunnel_ssh_iremia.pdf28.0 KiB2021/04/11 13:48
linux/ssh.txt · Dernière modification: 2021/04/11 13:50 (modification externe)