Configurer la connexion par clé SSH – Debian, Ubuntu, Raspberry

Ajouter une clé ssh à debian ubuntu raspberry

Qu’est-ce qu’est une clé SSH ?

Aujourd’hui nous allons voir un élément de sécurité important, la connexion par clé Secure Shell, ou SSH. Cette clé de 2048 ou 4096 bits (en général) est générée aléatoirement par notre ordinateur, ou plus précisément par ssh-keygen, un élément d’OpenSSH. À la création 2 fichiers seront générés. Un fichier contenant notre clé privée qui comme son nom l’indique doit rester privée, et une clé publique (.pub). La clé privée sert à s’identifier et la clé publique à vérifier l’authenticité de la clé privée. Il faut donc envoyer cette clé publique sur les serveurs (ou autre) sur lesquels nous souhaitons nous connecter.

Activer le service OpenSSH sur Windows

Personnellement je le fais depuis le terminal de Windows, je n’utilise pas de logiciels comme PuTTY. Nous allons donc activer le service OpenSSH sur Windows.

Vous n’avez plus qu’à cliquer sur Ajouter une fonctionnalité, chercher OpenSSH et installer. Vous pouvez voir sur ma capture d’écran que c’est déjà installé pour moi.

Générer la clé SSH

Nous allons maintenant générer une clé SSH de 4096 bits

ssh-keygen -t rsa -b 4096

Pendant la création il vous sera demandé l’emplacement de la clé, par défaut il s’agit de C:\Users\Vous\.ssh\id_rsa il vous sera aussi demandé de mettre une passphrase. Sur le principe la passphrase agît comme une mot de passe. Il est conseillé de mettre une phrase, mais facile à retenir. Le but est aussi de faciliter la connexion.

Envoyer la clé publique sur votre machine distante

Juste avant d’envoyer la clé publique, nous allons aller vérifier que certains éléments sont présents.
Connectez-vous à votre serveur et connectez-vous sur l’utilisateur qui bénéficiera de la clé SSH.

cd
cd /home/monutilisateur/.ssh/

Si .ssh n’existe pas, pas de panique, nous allons créer le dossier et les fichiers

cd
mkdir .ssh
touch .ssh/authorized_keys
touch .ssh/instance_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
chmod 600 .ssh/instance_keys

On peut maintenant retourner sur notre terminal Windows pour envoyer la clé SSH.

type C:\Users\Vous\.ssh\id_rsa.pub | ssh user@ip "cat >> .ssh/authorized_keys && cat .ssh/authorized_keys >> .ssh/instance_keys"

Votre clé publique est maintenant sur votre machie distante, vous pouvez donc l’utiliser pour vous connecter.
Si vous utilisez un terminal type Git Bash, vous pouvez utiliser la commande ssh-copy-id

ssh-copy-id -i C:/Users/VOUS/.ssh/id_rsa.pub user@ip

Je vous conseille de copier la clé dans le fichier instance_keys car si vous utilisez un VPS, en fonction de votre hébergeur, le fichier authorized_keys peut être vidé. Le fichier instance_keys est persistant.

Vous connecter avec votre nouvelle clé SSH

Pour vous connecter avec votre clé nouvellement créée et installée, rien de plus simple, il suffit juste de préciser l’emplacement de la clé avec -i.

Si vous n’avez qu’une seule clé SSH et que vous avez laissé le nom par défaut, il est possible que la clé soit prise par défaut. Je vous conseille quand même de prendre l’habitude d’utiliser le -i. La gestion de plusieurs clés n’en sera que plus facile.

Depuis le terminal Windows

ssh -i C:\Users\VOUS\.ssh\id_rsa user@ip

Depuis GitBash

ssh -i C:/Users/VOUS/.ssh/id_rsa user@ip

Si votre but était seulement de générer et mettre en place la clé SSH, vous pouvez vous arrêter ici. Si vous voulez sécuriser un peu plus la connexion, on continu pour la suite.

Changer le port du service SSH

Pour changer le port, il suffit de décommenter la ligne #Port 22 et de mettre le numéro que vous souhaitez entre 1024 et 65535. Attention, certains ports peuvent être utilisés, comme le 3000 par Grafana ou 8086 par InfluxDB.

Par défaut SSH utilise le port 22. Ce port est la cible de beaucoup d’attaques automatiques exécutées par des robots qui crawl internet. Dans vos logs vous en découvrirez sûrement plusieurs centaines, voir plusieurs milliers.

Notez que si vous souhaitez vous connecter depuis votre lieu de travail, école ou autre, vous ne pourrez peut-être pas utiliser un autre port que le 22 car celui-ci sera fermé.

sudo nano /etc/ssh/sshd_config
Port 22

Une fois le port changé, on relance sshd

systemctl restart sshd

Lors de vos prochaines connexion via ssh vous devrez préciser le port de connexion

ssh -i C:\Users\VOUS\.ssh\id_rsa user@ip -p votre_port

Interdire la connexion par mot de passe

Nous devons éditer le fichier de configuration de sshd.

sudo nano /etc/ssh/sshd_config

Pour bloquer la connexion par mot de passe à un seul utilisateur

Match user mon_utilisateur
PasswordAuthentication no

Pour bloquer la connexion par mot de passe à tous les utilisateurs, on passe la veuleur à no et on décommente les lignes.

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
PermitEmptyPasswords no

Il est aussi conseillé de bloquer la connexion de l’utilisateur root. Pour ce faire, décommenter la ligne suivante

Attention, si vous n’utilisez que l’utilisateur root (ce qui est une mauvaise habitude), ne faites surtout pas ça, sous peine de ne plus pouvoir vous connecter.

#PermitRootLogin no

On redémarrer sshd pour les modifications soient prises en compte

systemctl restart sshd

Vous avez maintenant la possibilité de vous connecter en SSH avec votre utilisateur, vous avez empêché la connexion de root, la connexion par mot de passe est désactivée et vous avez changé le port de SSH. Si vous souhaitez aller un peu plus loin avec SSH, rendez-vous sur cet article pour apprendre à utiliser le fichier config et limiter les connexions à une IP spécifique !

Je reviens bientôt avec l’installation de Fail2ban et la configuration de IPtables !

En attendant, n’hésitez pas à commenter cet article s’il vous a plu ou si vous avez des questions. Je vous invite a aller voir l’article sur l’installation de LAMP ainsi que celui sur Grafana, InfluxDB et Telegraf

4.7/5 - (34 votes)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Articles de la même catégorie

Retour en haut