Aller au contenu

SSH Linux

Le service SSH sert à prendre la main à distance sur une machine via un terminal . Il est très utilisé pour la maintenance de serveurs Linux.

Configuration du service

1. SSH n’a pas besoin d’installation, il suffit de lancer cette commande pour lancer le service
systemctl start ssh
2. Éditer le fichier de configuration sshd_config
nano /etc/ssh/sshd_config 
3. Autorisez la connexion root à votre machine
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
4. Testez la connexion à votre serveur !
debian1 ~  $ #ssh [email protected]

The authenticity of host '192.2.30.243 (129.2.30.243)' can't be established.
ECDSA key fingerprint is SHA256:DVrF6g9XLK6++arMimO54C/DdnSePyyYkL+AGtFoKnc.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.2.30.243' (ECDSA) to the list of known hosts.
[email protected]'s password:
Linux addok 5.10.0-20-amd64 #1 SMP Debian 5.10.158-2 (2022-12-13) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Aug 17 13:51:19 2023 from 192.2.32.79
 ____  _                                        ____   ___   ___ _____
| __ )(_) ___ _ ____   _____ _ __  _   _  ___  |  _ \ / _ \ / _ \_   _|
|  _ \| |/ _ \ '_ \ \ / / _ \ '_ \| | | |/ _ \ | |_) | | | | | | || |
| |_) | |  __/ | | \ V /  __/ | | | |_| |  __/ |  _ <| |_| | |_| || |
|____/|_|\___|_| |_|\_/ \___|_| |_|\__,_|\___| |_| \_\\___/ \___/ |_|

root ~  #
Vous avez maintenant accès à votre shell à distance, depuis une autre machine. Il est possible de se connecter en root si vous l’avez activé dans les options, mais c’est moins sécurisé.

Rendre le SSH plus sécurisé

Pour rendre le SSH plus sécurisé, on peut générer une clé Publique et une clé Privé afin que les serveurs puissent communiquer entre eux sans avoir de mot de passe qui se baladent sur le réseau.
1. Générer une clé SSH
ssh-keygen -t rsa -b 4096 -f /root/.ssh/id_rsa -N ''
Ici la commande utilise le protocole rsa pour générer une clé de 4096 bytes, la sauvegarde dans le dossier .ssh de root et n’est pas protégée par un mot de passe.
2. Les clés privée et publique sont stockée sous :
/root/.ssh/id_rsa > pour la clé privée   
/root/ssh/id_rsa.pub > pour la clé publique
3. Copier la clé publique SSH par le réseau et entrer une première fois le mot de passe du serveur
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
4. Connectez vous au serveur, il faudra accepter le certificat et entrer le mot de passe de l’utilisateur lors de la première connexion.
ssh-add /root/.ssh/id_rsa
Il est également possible de désactiver l’authentification par mot de passe afin de n’autoriser à se connecter uniquement les machines qui possèdent la clé SSH
Pour finir, il est possible de désactiver le login du root via ssh, et de créer un utilisateur avec les droits root pour se connecter. De cette façon les pirates devrons également trouver le nom d’utilisateur root.
1. Editer le fichier de configuration de SSH
nano +/PermitRootLogin /etc/ssh/sshd_config
2. Décommenter la ligne #PermitRootLogin et mettez le à ‘no’
#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
3. Créer un nouvel utilisateur et l’ajouter au groupe sudo
sudo adduser username 
sudo /usr/sbin/usermod -aG sudo username 
Vous pouvez maintenant vous connecter avec le compte que vous avez choisi, et vous pouvez toujours lancer vos commandes root en utilisant sudo. Il est également possible d’ajouter une ligne au fichier de configuration pour autoriser uniquement les utilisateurs que l’on souhaite à se connecter en SSH au serveur.
AllowUsers admin username