Table des matières

Voir cette page sous forme de diaporama.

SE - SSH - Présentation

SSH (Secure Shell - 1995) est un protocole réseau utilisé pour remplacer les anciens protocoles et outils notoirement peu sécurisés comme TELNET, RSH, RCP, RLOGIN.

SSH - Fonctionnalités

Il chiffre le trafic au moyen de la cryptographie asymétrique (RSA, ECDSA ou autre) et rend inopérante la capture de trames et de mots de passe. Il autorise également :

Lee fichiers de configuration

Pour les clients, chaque utilisateur dispose d’un répertoire .ssh dans son répertoire home comportant le fichier known_host (clés RSA des machines auxquelles on s’est connecté) ainsi que les éventuels fichiers de clé publique et privée de même qu'un fichier de configuration (config). Il peut aussi disposer d'un fichier authorized_keys contenant les clé publiques des machines autorisées.

Exemple de fichier /etc/ssh/config 

host gwe
hostname gwe.lyc-lecastel.fr
port 5678
user root

host web-dx
hostname 82.225.155.241
user root

host px
hostname px.lyc-lecastel.lan
user root

Connexion par clé publique

Elle permet de se connecter à un serveur distant sans devoir fournir de mot de passe et assure ainsi une sécurité bien supérieure.

Elle présente également l’intérêt de pouvoir automatiser des connexions (scripts de sauvegarde, …)

Il est néanmoins possible de protéger la clé privée par une passphrase pour éviter un usage imprévu de la clé

1 - Génération d'une paire de clés

ssh-keygen

sio@buster:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sio/.ssh/id_rsa): 
Created directory '/home/sio/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/sio/.ssh/id_rsa.
Your public key has been saved in /home/sio/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:CRJDM/6p4MHYF/VUEoSB16ULfkgedKwVbosjjp0V+YI sio@buster
The key's randomart image is:
+---[RSA 2048]----+
|   .*.+*B=o      |
|   ..Bo*+o       |
|    +.Bo=        |
| +   O.@ +       |
|. = E @ S        |
| . B = +         |
|  o =            |
|                 |
|                 |
+----[SHA256]-----+

2 - Copie de la clé publique sur le serveur distant

ssh-copy-id user@machine

sio@buster:~$ ssh-copy-id srv
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/sio/.ssh/id_rsa.pub"
The authenticity of host 'srv' cannot be established.
ECDSA key fingerprint is SHA256:gGL8vNTSj1RJ17LQ05wkZvuawTRkKzkKdVNzEoow59k.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
sio@srv's password: 
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'srv'"
and check to make sure that only the key(s) you wanted were added.

Execution de commande distante

ssh sio@srv uptime
01:36:03 up 74 days,  3:18,  2 users,  load average: 0,00, 0,00, 0,00
ssh root@srv "ls -lh"

SSH - sécurisation

SSH est un service très sensible au niveau sécurité