Voici quelques infos pour créer un jeu de clés ssh afin de sécuriser l’accès à un serveur Linux vps / dédié. Cette méthode de connexion Permet de sécuriser l’authentification à votre serveur elle sera à privilégier pour augmenter la sécurité et la facilité de gestion de vos vps.
La génération de ce jeu de clés permet d’obtenir, une clé privée, que vous conserverez de votre côté sur votre machine de travail et une clé publique, qui sera mise en place pour authentifier votre utilisateur sur votre serveur vps.
Une fois les clés en place nous désactiverons la possibilité de se connecter en root & l’authentification par login / mot de passe. Attention ! Une fois configuré le seul moyen de récupérer une connexion root sera de passer par la console de rescue de votre hébergeur il faudra donc veillez à avoir ces accès au préalable.
La génération de ce type de clé permet aussi l’accès et l’utilisation des services tel que Bitbucket, DockerHub ou Github par exemple.
Génération de la keypair ssh
Sur Windows il n’existe pas à proprement parlé de paquet openssl qui va nous permettre de générer notre clé ssh. Personnellement j’utilise depuis un bon moment maintenant le Terminal Cmder. Celui-ci embarque git-bash for Windows dans sa version complète et va nous permettre de générer notre jeu de clé très facilement.
Une fois télécharger vous pouvez extraire le répertoire cmder dans votre ProgramFiles et exécuter cmder.exe. (que je vous conseille d’attacher à votre menu démarrer par exemple) Puis depuis le terminal taper bash
![](https://pixxlisation.tech.blog/wp-content/uploads/2019/02/image.png)
Une fois dans bash vous aller circuler dans le répertoire de votre utilisateur sur votre machine Windows et créer le répertoire .ssh qui contiendra vos clés
cd C:\Users\pixxl\ mkdir .ssh cd .ssh\ ssh-keygen.exe
Dans mon cas je n’ai pas généré de mot de passe sur la clé, c’est à vous de juger de l’intérêt de la chose, sachant que le mot de passe vous sera alors demander lors de l’authentification à votre serveur…
![](https://pixxlisation.tech.blog/wp-content/uploads/2019/02/2019-02-27-20_22_22-cmder.png?w=739)
Dans le répertoire .ssh vous avez désormais deux fichiers :
id_rsa : c’est votre clé privée, elle est à conserver sur votre machine de travail (il est bon d’en faire un backup)
id_rsa.pub : votre clé publique qui sera copiée sur votre serveur et qui permettra d’authentifier votre utilisateur par échange de clé.
Configuration SSHD sur votre serveur
Maintenant vous pouvez vous connecter en root sur votre serveur, et créer un nouvel utilisateur pour lui assigné la clé publique nouvellement crée. Les exemples suivants ont été fait sur une machine Ubuntu 18.04, les commandes seront a adaptées en fonction de votre distribution.
Si votre utilisateur est déjà crée sur le serveur vous avez la possibilité d’insérer votre clé ssh publique directement depuis votre commande bash de votre machine de travail avec la commande suivante :
ssh-copy-id pixxl@ip_server
Sinon nous allons créer l’utilisateur, lui permettre d’être sudoers et enfin créer sont fichier authorized_keys qui contiendra sa clé publique :
sudo adduser pixxl sudo adduser pixxl sudo sudo mkdir /home/pixxl/.ssh sudo vim /home/pixxl/.ssh/authorized_keys
Redémarrer le service ssh
sudo service ssh restart
Vous pouvez à ce moment vous déconnecter de votre session root et tenter la connexion avec votre nouvel utilisateur depuis Cmder
ssh pixxl@ip_server
Vous parviendrez normalement à vous connecter à celui-ci sans prompt de mot de passe.
Sécurisation SSHD
Enfin nous allons paramétrer ssh afin de ne plus autoriser la connexion de Root et désactiver les logins sans clé pour cela éditer (ou décommenter) les deux lignes suivantes dans le fichier sshd_conf
sudo vim /etc/ssh/sshd_conf PasswordAuthentication no PermitRootLogin = no sudo service ssh restart
![](https://pixxlisation.tech.blog/wp-content/uploads/2019/02/image-1.png)
Vous pourrez alors tester de vous reconnecter en root, vous obtiendrez alors l’erreur suivante :
root@ip_server : permission denied (publickey)
Par contre la connexion avec votre utilisateur devrait se passer sans encombres. Voilà qui devrait dans un premier temps sécurisé les accès d’administration à votre serveur. J’expliquerai les étapes à mettre en place ensuite pour sécuriser de façon basique un serveur vps au niveau iptables & fail2ban dans un autre billet.