Qu'est ce que le protocole SSH ?

Avez-vous déjà utilisé ou configuré un serveur ? Ou même simplement vu un serveur ? La principale différence entre un serveur et un PC classique, c’est que le serveur n’a généralement pas d’interface physique (écran, clavier, souris). Pourtant il faut bien que l'on puisse communiquer avec lui pour installer des programmes sur ce dernier par exemple.

De plus, il est fréquent de travailler avec des serveurs qui ne se trouvent pas à proximité. Aujourd’hui, de nombreuses entreprises virtualisent leur infrastructure ou disposent de serveurs hébergés dans des datacenters, parfois très éloignés. Cependant, nous devons pouvoir continuer à gérer nos serveurs. Mais alors comment faire ?

Le protocole SSH (Secure Shell ou "Terminal Sécurisé") est un protocole qui définit comment deux machines communiquent en sécurité sur un réseau non sécurisé.

Le lien entre le protocole SSH et un serveur est simple : c’est grâce à ce protocole que l’on peut se connecter depuis une machine hôte, que ce soit votre ordinateur personnel ou un poste de travail en entreprise, à un serveur distant qu’il soit dans un datacenter à quelques kilomètres ou à l’autre bout du monde

-> Pour résumer, SSH est un protocole qui permet de contrôler et communiquer avec des machines à distance de manière sécurisée.

Comment utiliser le protocole SSH

Nous allons faire une mise en pratique. Imaginons la chose suivante : Nous sommes dans une entreprise qui possède un serveur hébergé dans un datacenter à 500 km du bureau. Ce serveur héberge le site web de l’entreprise et plusieurs bases de données internes. Nous sommes chargés de récupérer un fichier depuis le serveur et le copier sur notre machine hôte. Le fichier s'appelle "index.html"

Pour ce faire nous allons utiliser le protocole SSH

Précisons que nos deux machines fonctionnent sous Linux, la machine hôte utilisant une distribution Fedora et le serveur une distribution Debian.

Nous avons 3 informations avant de commencer notre mission :

Pour commencer, nous allons devoir installer openssh-client est un paquet logiciel qui fournit les outils clients pour se connecter à distance via SSH.


sudo apt install oppenssh-client # Installation de SSH
sudo systemctl enable ssh # Active le démarrage automatique du service
sudo systemctl start ssh # Lance le service
                    

sudo systemctl status sshd # Voir le status du service SSH
                    

Voici la réponse que l'on doit avoir

réponse terminal

Si le service est bien en "running", alors tout est bon !

Sur notre serveur, openssh-server doit déjà être installé, sinon la connexion est impossible.

Maintenant utilisons les informations que l'on connait sur notre serveur, à savoir, son IP, un utilisateur et son mot de passe.


sudo ssh user@192.168.122.167
                    

Si le serveur tourne bien, alors le terminal renvoie une réponse du type (cette réponse apparaît juste la première fois lorsqu'on se connecte):


The authenticity of host '192.168.122.167' can't be established.
Are you sure you want to continue connecting (yes/no)? # Tapper "yes"        
                    

Puis il demande le mot de passe de l'utilisateur

Si tout se passe bien, voici le message qu'il pourrait renvoyer

reponse ssh

Nous sommes bien avec notre utilisateur "user"

reponse ssh

Nous avons donc réussi à nous connecter en SSH sur un serveur distant. Maintenant, trouvons le fichier à envoyer sur notre machine hôte.

reponse ssh

Utilisons la commande scp, qui utilise le protocole ssh pour copier le fichier sur notre machine hôte.


sudo scp index.html matheo@192.168.1.34:/home/matheo 
# La commande est séparée en 2 parties :
# La première permet de sélectionner le fichier à envoyer (sudo scp index.html)
# La deuxième permet de dire a qui, sur quelle machine et où copier le fichier
# (matheo@192.168.1.34:/home/matheo)       
                    
reponse ssh

Notre mise en pratique est terminée ! Nous avons établie une connexion SSH en toute sécurité.