Trucs de geek : les connexions SSH

Les admins mais pas seulement se connectent souvent à des machines distantes. On n'utilise plus telnet car ce n'est pas sécurisé. Comme on est des adeptes forçonnés de la sécurité on installe tout d’abord un serveur SSH sur la machine distante :

$ sudo install openssh-server

Sur le poste client (celui qui va se connecter au serveur) on installe opensssh-client et pour les anciens de Windows on peut installer le remarquable Putty et l'excélent Filezilla :

$ sudo install openssh-client putty

En effet il est tout à fait possible de se connecter à un serveur SSH avec un bon clien FTP. Le SSH inclut en effet le Secure FTP que gère parfaitement Filezilla.

Pour se connecter on va utiliser successivement :

  • un terminal
  • Dolphin
  • Filezilla
  • Putty

On terminera avec la copie dans un sens et dans l'autre de fichiers.

Le serveur SSH aura comme adresse IP le 172.16.61.10 (on simule un réseau local privé).

Avec un terminal :

$ ssh root@172.16.61.10

Il reste ensuite à saisir son mot de passe.

Avec Dolphin, on utilise le protocole fish :

Il vous est demandé ensuit le mot de passe pour root. Ce mot sera ensuite sauvegardé par KWallet.

Avec Nautilus choisissez le menu (tant qu'il existe) "Fichier / Se connecter au serveur" :

Avec Filezilla, le plus simple est de saisir les éléments de la connexion dans la barre de connexion rapide :

Avec Putty, il suffit de saisir l'adresse du serveur dans la rubrique "Host Name" :

de valider ensuite la connexion :

et de s'identifier :

Terminons cet article par la copie de fichiers entre votre station et le serveur. Il existe une commande pour cela : SCP (Secure Copy) :

Pour copier de notre station vers le serveur (vous n'êtes pas obligé d'être connecté avant) :

$ scp monfichier root@191.16.61.10:/home/moi/mon/repertoire

On valide le transfert en saisissant le mot de passe du root sur le serveur.

A l’inverse pour récupérer des fichiers du serveur :

$ scp root@191.16.61.10:/home/moi/mon/repertoire/un_fichier  /home/moi/dossier/reception

On pourrait en récupérer plusieurs avec :

$ scp root@191.16.61.10:/home/moi/mon/repertoire/* .

Et tout serait copié dans le dossier courant.

Pour récupérer un ensemble des dossiers :

$ scp -r root@191.16.61.10:/home/moi/mon/repertoire/* .

Et l'ensemble de l’arborescence sera récupérée.

Un cas particuliers : vous souhaitez accéder à machine derrière un VPN : la machine n'est pas directement visible. La solution :

Le Rebond SSH

Dans le contexte de la virtualisation certaines machines ne sont visibles sur le réseau ni visibles une fois connecté à un VPN. Le seul moyen de les atteindre est une première connexion SSH sur une machine puis de cette connexion une nouvelle connexion SSH vers la machine cible. En pratique cela peut arriver pour la connexion à un serveur de BD accessible uniquement de la machine abritant le Tomcat ou du serveur d'administration.

Pour éviter cette double connexion on peut utiliser le rebond SSH : on va se connecter à la machine cible en indiquant la machine intermédiaire. Cette machine renverra toutes les commandes reçues vers la cible.

Il faut installer netcat sur la machine intermédiaire. Sur une machine REDHAT ou CENTOS :

# yum install nc.x86_64

  • Exemple de connexion ;
    • la machine intermédiaire sera la 172.16.58.10
    • la machine cible : 172.16.58.11

La commande est :

$ ssh root@172.16.58.11 -o ProxyCommand="ssh root@172.16.58.10 nc %h 22"

Fait le 03/06/2013