Parfois, on veut se connecter sur une machine qui ne nous est pas directement accessible. On peut rebomdir dessus, mais ce n'est pas forcément le plus pratique. En particulier, quand on a besoin de faire des copies de fichiers par exemple.

Voici donc, quelques moyens de s'en sortir.

Tunnel SSH

Une technique courante, consiste à faire un tunnel SSH sur la gateway et ouvrir un port local sur sa machine pour se connecter à la machine qui nous interesse.

Pour celà, on ouvre d'abord la connexion sur la passerelle SSH :

user@localhost$ ssh $login@$gateway -L 2222:$mamachine:22

Explications :

  • -L : ouverture d'un port local sur la machine courante
  • 2222 : le numéro du port ouvert sur ma machine pour le tunnel (ici, '''2222''')
  • mamachine : le nom de la machine que je veux atteindre
  • 22 : le port du serveur SSH de $mamachine

Une fois le tunnel ouvert, on se connecte à sa machine sur le port local indiqué :

user@localhost$ scp -P 2222 $fichier $login@localhost

Proxy SSH

La technique du proxy est plus simple à mettre en œuvre. Il suffit pour cela d'ouvrir le fichier de configuration ssh (~/.ssh/config) et d'ajouter un bloc tel que :

Host proxied
User $login
Hostname $mamachine.$fqdn
ProxyCommand ssh $gateway -W %h:%p

Et lors de la connexion, une demande de mot de passe serait faite pour les deux serveurs (sauf si on a ajouté sa clef ssh sur les deux) :

user@localhost$ scp file proxied:/dev/null
login@gateway's password:
login@mamachine's password:
file                           100%  250KB 249.9KB/s   00:00

Cette technique a l'avantage d'être "fire and forget", il suffit en effet de faire la configuration une seule fois et tous les logiciels utilisant ssh utiliseront automatiquement le proxy.


SSH et les shells par defaut

Le vendredi 26 février 2016 par Benjamin Boudoir

Parfois, on se retrouve a travailler avec plusieurs personnes sur un compte générique (root, par exemple).

La méthode recommandée consisterait a ce que chaque personne ait un utilisateur et se su -, mais ce n'est pas parce que la méthode est recommandée qu'elle est appliquée.

En tout cas, dans ce genre …

Lire la suite

Envoyer une fonction par ssh

Le jeudi 23 juillet 2015 par Benjamin Boudoir

Il peut être utile dans un script d'envoyer du code sur un serveur afin d'obtenir des informations.

On peut avoir un script sur la machine, envoyer un script sur la machine et l'exécuter ou, moins chiant, envoyer une fonction.

Pour celà, on code une petite fonction, comme dans n'importe quel …

Lire la suite

Connexion SSH sans mot de passe

Le vendredi 13 mars 2015 par Benjamin Boudoir

Pour faire une connexion ssh sans mot de passe, la plupart des gens vous diront de simplement ne pas entrer de mot de passe. C'est une solution qui marche, mais qui est stupide dans 95% des cas (les 5% restants étant : ça sert pour des robots bien cachés et très …

Lire la suite