Pour accéder de manière sécurisée à un serveur distant, une paire de clés SSH est utilisée comme mécanisme d’authentification. Cela implique deux clés :
Une clé privée, que vous conservez en sécurité sur votre machine locale.
Une clé publique, qui est partagée avec le serveur.
Cela élimine le besoin de mots de passe lors de la connexion et améliore considérablement la sécurité.
Vous pouvez suivre les instructions de la section 3.1.1 ou 3.1.2, selon vos besoins :
Utilisez 3.1.1 pour générer et stocker la clé à l’emplacement par défaut.
Utilisez 3.1.2 pour générer et organiser la clé dans un sous-dossier personnalisé pour une meilleure gestion.
Cette approche est utile si vous devez gérer plusieurs clés SSH pour différents serveurs ou projets. Elle vous permet de stocker les clés SSH dans des sous-dossiers personnalisés, offrant une manière structurée d’organiser et de gérer vos clés à travers différents environnements.
Vous pouvez générer une clé SSH dans un sous-dossier au sein de .ssh/ pour garder les choses organisées et gérer facilement plusieurs clés pour différents projets ou serveurs.
Pour générer une clé SSH dans un sous-dossier personnalisé à l’intérieur du répertoire .ssh/, suivez ces étapes :
.ssh/ :
Créer le sous-dossier (s’il n’existe pas déjà) :
mkdir-p~/.ssh/my_custom_folder
Remplacez my_custom_folder par le nom de dossier souhaité.
Générer la clé dans le sous-dossier personnalisé : Exécutez la commande ssh-keygen en spécifiant le chemin complet du fichier de clé :
Vérifier les permissions correctes
Assurez-vous que votre dossier .ssh/, le sous-dossier à l’intérieur et les fichiers de clés associés ont les permissions correctes :
Utilisez la commande suivante pour copier votre clé publique sur le serveur :
ssh-copy-id-i.ssh/id_rsa.pubusername@server_ip
Remplacez username par votre nom d’utilisateur sur le serveur.
Remplacez server_ip par l’adresse IP ou le domaine du serveur.
Le mot de passe de votre serveur vous sera demandé. Une fois authentifié, la clé publique sera ajoutée sur le serveur dans ~/.ssh/authorized_keys pour cet utilisateur.
Lors de la connexion au serveur avec la clé personnalisée, vous devrez peut-être spécifier explicitement le chemin de la clé privée si elle n’est pas détectée automatiquement.
ssh-i~/.ssh/id_rsausername@server_ip
3.4. Simplifier la connexion SSH avec les paramètres de configuration
Pour faciliter votre processus de connexion SSH, vous pouvez configurer le client SSH pour qu’il mémorise et utilise automatiquement votre/vos clé(s) SSH personnalisée(s) pour des serveurs spécifiques en modifiant le fichier ~/.ssh/config. Voici comment procéder :
Modifier/Créer le fichier de configuration SSH : Ouvrez ou créez le fichier ~/.ssh/config en utilisant votre éditeur de texte favori (comme vim ou vim).
vim~/.ssh/config
Ajouter une entrée d’hôte SSH : Ajoutez la configuration suivante au fichier :
Host server-alias
HostName server_ip
User username
IdentityFile ~/.ssh/id_rsa
ServerAliveInterval 60
ServerAliveCountMax 240
Remplacez :
server-alias par un nom que vous préférez utiliser comme alias pour ce serveur (par exemple, myserver).
server_ip par l’adresse IP ou le domaine du serveur.
username par votre nom d’utilisateur sur le serveur.
~/.ssh/id_rsa par le chemin vers votre clé privée (ajustez si vous avez généré une clé dans un sous-dossier personnalisé, par exemple, ~/.ssh/my_custom_folder/id_rsa).
ServerAliveInterval 60 : Envoie un paquet keep-alive au serveur toutes les 60 secondes.
ServerAliveCountMax 240 : Permet à la connexion de rester active pendant 4 heures (240 x 60).
Enregistrer et quitter : Enregistrez le fichier et quittez votre éditeur.
Définir les permissions correctes : Assurez-vous que le fichier ~/.ssh/config a les permissions correctes :
chmod600~/.ssh/config
Tester la connexion SSH : Vous pouvez maintenant vous connecter au serveur simplement en utilisant l’alias configuré :
sshserver-alias
Cela utilisera automatiquement la clé et le nom d’utilisateur spécifiés pour la connexion.
3.4.2 Exemple avec une clé et un dossier personnalisés
Pour définir “PasswordAuthentication” à “no” sur le serveur, vous devez modifier le fichier de configuration du serveur SSH (sshd_config). Cela garantit que seule l’authentification par clé est autorisée, renforçant davantage la sécurité du serveur. Voici comment procéder :
3.5.1. Désactiver l’authentification par mot de passe sur le serveur
Trouver et mettre à jour le paramètre PasswordAuthentication :
Recherchez la ligne PasswordAuthentication dans le fichier. Si elle n’existe pas, ajoutez-la. Définissez sa valeur à no :
PasswordAuthentication no
(Facultatif) Assurez-vous également que PubkeyAuthentication est défini à yes pour autoriser l’authentification par clé :
PubkeyAuthentication yes
L’authentification par clé publique (authentification par clé SSH) est activée par défaut. Cela signifie que vous n’avez pas besoin d’ajouter ou de modifier explicitement la ligne PubkeyAuthentication yes sauf si votre configuration a été modifiée ou si vous souhaitez vous assurer explicitement qu’elle est définie.
Enregistrer et quitter :
Redémarrer le service SSH :
Redémarrez le serveur SSH pour appliquer les modifications :
sudosystemctlrestartssh
Tester la configuration :
Assurez-vous que vous pouvez vous connecter au serveur avec votre clé avant de fermer votre session SSH actuelle :
ssh-i~/.ssh/id_rsausername@server_ip
3.5.2. Vérifier que la connexion par mot de passe est désactivée