Configurer ssh sur un serveur Linux
Plus besoin de le présenter, ssh un outil indispensable et sécurisé pour se connecter à distance sur un serveur Linux. Voici une vue globale sur son utilisation, sa configuration et quelques bonnes pratiques.
Génération des clés SSH
Cette commande va générer une nouvelle paire de clés ssh (publique et privée). La clé privée est à stocker soigneusement sur le serveur, la clé publique peut être partagée avec le serveur sur lequel on souhaite se connecter.
Les clés sont générés par défaut dans le répertoire ~/.ssh
ssh-keygen -t ecdsa |
Envoyer la clé publique sur le serveur distant :
ssh-copy-id -i ~/.ssh/id_ecdsa.pub user@server |
Ou bien copier coller le contenu du fichier ~/.ssh/id_ecdsa.pub vers le fichier ~/.ssh/authorized_keys
Ce fichier doit généralement être créée sur le serveur distant et avoir les droits suivants :
sudo chmod 600 ~/.ssh/authorized_keys |
Configuration du fichier ~/.ssh/config
Ce fichier va permettre de faire une configuration de base de ssh pour faciliter la prise en main à distance.
Ce fichier doit être créée :
vim ~/.ssh/config |
Et peut contenir les infos de connexion
Host nomduserveur
HostName ip_ou_domaine_serveur_distant
User utilisateur
IdentityFile ~/.ssh/id_edcsa
Port 22
La commande de connexion complète : ssh user@server sera remplacée par ssh nomduserveur vu que l’utilisateur a déjà renseigné dans le fichier de config ainsi que la clé de connexion.
Configuration la connexion par clé uniquement
Sur le serveur il suffit de modifier le fichier de config ssh :
sudo vim/etc/ssh/sshd_config |
Et modifier ou ajouter ces lignes :
PubkeyAuthentication yes PasswordAuthentication no PermitRootLogin no |
Puis de redémarrer le service ssh :
sudo systemctl restart sshd |
Permission des fichiers SSH
Il est important de vérifier la configuration des droits des fichiers ssh pour dans un premier temps garantir la sécurité et dans un deuxième temps ssh refusera la connexion si la configuration est trop permissive.
|