I. Qu'est-ce que SSH ?

Secure Shell (SSH) est à la fois un programme informatique et un protocole de communication sécurisé. Ici, nous ne parlerons pas de la suite de logiciels SSH (propriétaires et payants) mais uniquement du protocole SSH.
Le protocole de connexion impose un échange de clés de chiffrement en début de connexion. Par la suite toutes les trames sont chiffrées. Il devient donc impossible d'utiliser un sniffer pour voir ce que fait l'utilisateur. Le protocole SSH a été conçu avec l'objectif de remplacer les différents programmes rlogin, telnet et rsh. (source Wikipédia)
Pour résumer, le principe de SSH est d'établir une connexion sécurisée, donc cryptée d'une machine à une autre.

Nous allons donc utiliser ce protocole SSH pour prendre le contrôle de l'ordinateur distant. Il nous faut pour cela installer openssh-server sur la machine distante.


II. Installation d'OpenSSH

Il suffit d'installer le serveur OpenSSH sur la machine distante :
Pour Debian ou Ubuntu :
apt-get install openssh-server
Pour Fedora ou Red-Hat :
yum install openssh-server

Il faut également un client OpenSSH pour se connecter au serveur. Le client openssh doit être installé sur l'autre machine, celle avec laquelle nous allons prendre la main à distance.
Normalement le client openssh est installé par défaut sur toutes les distribution récentes. Au cas où, la commande est la suivante :
Pour Debian ou Ubuntu :
apt-get install openssh-client
Pour Fedora ou Red-Hat :
yum install openssh-client


III. Utilisation d'OpenSSH

Il suffit donc de se connecter sur la machine distante depuis la console (ici 124.145.19.85 est l'adresse IP de ma machine distante) :
ssh root@124.145.19.85
Cet exemple se connecte sur la machine 124.145.19.85 en root. Si c'est la première fois que vous vous connectez sur cette machine, vous verrez apparaitre ce message :

The authenticity of host 'nom_de_la_machine' (124.145.19.85) can't be established.
RSA1 key fingerprint is 1z:2y:3x:4w:56:78:98:78:ab:cd:ef:01:23:45:67:89.
Are you sure you want to continue connecting (yes/no)?


Tapez yes puis validez. Vous n'aurez à faire cette manipulation qu'une seule fois. Par la suite, la machine distante sera tout de suite reconnue.
Il faut ensuite renseigner le mot de passe root de cette machine (ou le mot de passe utilisateur si on se connecte sur un compte utilisateur).

Vous avez donc ainsi accès à la machine distante avec le compte root depuis votre machine locale.


Il est également possible de copier des fichiers grâce à la fonction scp de OpenSSH

Toujours dans la console de la machine locale, taper la commande suivante :
Pour copier un fichier de la machine locale sur la machine distante :
scp /home/benj/fichier 124.145.19.85:/home/tom/fichier
Pour copier un fichier de la machine distante sur la machine locale :
scp 124.145.19.85:/home/tom/fichier /home/benj/fichier


Voici donc les deux principales commandes de OpenSSH (celles que j'utilise régulièrement).
Ce tuto s'arrête ici, je n'ai pas parlé d'authentification par clé publique/clé privée mais si il y a des demandes, j'éditerais ce billet pour en parler. :)