Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
informatique:linux:commandes:ssh [2023/05/01 06:20] – [7. Script Bash pour générer une clé privée SSH et configurer la connexion] Cédrix | informatique:linux:commandes:ssh [2023/05/01 06:23] (Version actuelle) – [7. Script Bash pour générer une clé privée SSH et configurer la connexion] Cédrix | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== ssh ====== | ||
+ | {{ informatique: | ||
+ | '' | ||
+ | |||
+ | La connexion '' | ||
+ | |||
+ | ===== - Connexions sécurisées et simplifiées grâce à l' | ||
+ | |||
+ | Pour simplifier et sécuriser la connexion à une machine distante, il est possible d' | ||
+ | |||
+ | Cette méthode présente plusieurs avantages. Elle élimine la complexité liée à la gestion des mots de passe et permet un gain de temps considérable au quotidien. De plus, elle offre un niveau de sécurité supérieur, car les clés utilisées sont beaucoup plus robustes que les mots de passe traditionnels. | ||
+ | |||
+ | Si plusieurs utilisateurs doivent accéder au serveur distant, SSH permet de gérer plusieurs paires de clés, permettant ainsi à chaque utilisateur de se connecter avec sa propre clé. Si vous avez la responsabilité de plusieurs serveurs, vous pouvez utiliser la même clé publique sur tous les serveurs. | ||
+ | |||
+ | Voici un guide détaillé pour vous aider à créer un jeu de clés sur votre poste de travail. Nous allons générer deux clés : une clé privée et une clé publique. Seule la clé publique devra être déployée sur les différents serveurs, tandis que la clé privée doit être conservée précieusement sur votre ordinateur. | ||
+ | ===== - Création d'un jeu de clés ecdsa pour une connexion SSH sécurisée ===== | ||
+ | |||
+ | |||
+ | L' | ||
+ | |||
+ | Si vous préférez utiliser l' | ||
+ | |||
+ | **Étape 1:** Génération de la clé SSH | ||
+ | |||
+ | Pour créer une clé SSH de type " | ||
+ | |||
+ | <code BASH> | ||
+ | ssh-keygen -t ecdsa -b 521 | ||
+ | </ | ||
+ | |||
+ | -- Spécification de l' | ||
+ | |||
+ | Si vous souhaitez spécifier un emplacement particulier pour stocker la clé, vous pouvez utiliser l' | ||
+ | |||
+ | <code BASH> | ||
+ | ssh-keygen -t ecdsa -b 521 -f ~/ | ||
+ | </ | ||
+ | |||
+ | -- Ajout d'un commentaire à la clé (optionnel) | ||
+ | |||
+ | Si vous souhaitez ajouter un commentaire à la clé pour une meilleure identification, | ||
+ | |||
+ | <code BASH> | ||
+ | ssh-keygen -t ecdsa -b 521 -f ~/ | ||
+ | </ | ||
+ | |||
+ | **Étape 2:** Sécurisation de la clé privée | ||
+ | |||
+ | Il est crucial de sécuriser la clé privée et de limiter l' | ||
+ | |||
+ | <code BASH> | ||
+ | Enter passphrase (empty for no passphrase): | ||
+ | Enter same passphrase again: | ||
+ | </ | ||
+ | |||
+ | En suivant ces étapes, vous aurez créé un jeu de clés **ecdsa** pour une connexion SSH sécurisée. Veillez à bien protéger la clé privée et à utiliser une **passphrase** forte pour garantir la sécurité de votre connexion. | ||
+ | ===== - Contrôle et gestion des clés dans SSH ===== | ||
+ | |||
+ | |||
+ | {{ informatique: | ||
+ | |||
+ | |||
+ | |||
+ | Pour contrôler vos clés SSH et effectuer des opérations de gestion, vous pouvez suivre les étapes suivantes : | ||
+ | |||
+ | **Étape 1:** Lister les clés présentes dans votre compte | ||
+ | |||
+ | Utilisez la commande suivante dans votre terminal pour lister les clés présentes dans votre répertoire ~/.ssh/ : | ||
+ | |||
+ | <code BASH> | ||
+ | ls ~/.ssh/ | ||
+ | </ | ||
+ | |||
+ | Cette commande affichera la liste des clés présentes, le cas échéant. | ||
+ | |||
+ | **Étape 2:** Afficher le contenu d'une clé (à utiliser avec précaution) | ||
+ | |||
+ | Si vous souhaitez afficher le contenu d'une clé spécifique, | ||
+ | |||
+ | <code BASH> | ||
+ | cat ~/ | ||
+ | </ | ||
+ | |||
+ | Remplacez " | ||
+ | |||
+ | Il est essentiel de prendre des mesures pour sécuriser vos clés SSH, telles que la protection de la clé privée avec une passphrase et le contrôle strict des autorisations d' | ||
+ | |||
+ | En suivant ces étapes, vous pouvez contrôler et gérer vos clés SSH de manière sécurisée. Veillez à respecter les bonnes pratiques en matière de gestion des clés et à prendre les mesures appropriées pour protéger vos informations sensibles. | ||
+ | ===== - Copier et utiliser une clé publique avec SSH ===== | ||
+ | |||
+ | Guide étape par étape pour copier et utiliser une clé publique avec SSH sous Linx. | ||
+ | |||
+ | -- | ||
+ | |||
+ | Pour utiliser la clé, vous devez procéder à la copie de votre clé publique vers le poste distant. La clé publique est généralement stockée dans un fichier nommé " | ||
+ | |||
+ | Voici un exemple plus détaillé du processus : | ||
+ | |||
+ | **1.** Tout d' | ||
+ | |||
+ | **2.** Ensuite, ouvrez une session sur le serveur distant en utilisant la commande SSH : | ||
+ | |||
+ | <code BASH> | ||
+ | ssh utilisateur@srvprod.aceinternet.fr | ||
+ | </ | ||
+ | |||
+ | Remplacez " | ||
+ | |||
+ | **3.** Une fois connecté au serveur distant, créez le dossier " | ||
+ | |||
+ | <code BASH> | ||
+ | mkdir -p ~/.ssh | ||
+ | </ | ||
+ | |||
+ | **4.** Utilisez la commande " | ||
+ | |||
+ | <code BASH> | ||
+ | ssh-copy-id -i ~/ | ||
+ | </ | ||
+ | |||
+ | Cette commande copie le contenu de votre clé publique dans le fichier " | ||
+ | |||
+ | **5.** Après avoir exécuté la commande, vous serez invité à saisir votre mot de passe pour le serveur distant une dernière fois. Entrez-le et la copie de votre clé publique sera effectuée. | ||
+ | |||
+ | Une fois que vous avez suivi ces étapes, vous devriez être en mesure de vous connecter au serveur distant en utilisant votre clé privée, sans avoir à saisir votre mot de passe à chaque fois. | ||
+ | |||
+ | Veuillez noter que les noms de fichiers et les chemins d' | ||
+ | |||
+ | ===== - Gestion des clés SSH avec un fichier de configuration ===== | ||
+ | |||
+ | |||
+ | Pour faciliter la gestion des connexions SSH, vous pouvez créer un fichier de configuration qui regroupe toutes les informations nécessaires. Voici un exemple de configuration : | ||
+ | |||
+ | < | ||
+ | host srvprod.aceinternet.fr | ||
+ | HostName srvprod.aceinternet.fr | ||
+ | Port 2134 | ||
+ | User adminsrv | ||
+ | IdentityFile ~/ | ||
+ | </ | ||
+ | |||
+ | Ce fichier de configuration permet de spécifier les paramètres de connexion pour l' | ||
+ | |||
+ | Il est important de protéger le fichier de configuration pour garantir la sécurité de vos informations sensibles. Vous pouvez définir les permissions appropriées en utilisant les commandes suivantes : | ||
+ | |||
+ | <code BASH> | ||
+ | chmod 600 ~/ | ||
+ | chown $USER ~/ | ||
+ | </ | ||
+ | |||
+ | La première commande '' | ||
+ | |||
+ | En veillant à protéger votre fichier de configuration, | ||
+ | ===== - Conseils en cas de panne ===== | ||
+ | |||
+ | |||
+ | ==== - Que faire en cas de changement de la clé publique de l' | ||
+ | |||
+ | |||
+ | Une **clé publique de l' | ||
+ | |||
+ | La **clé publique de l' | ||
+ | |||
+ | Lorsque vous vous reconnectez à l' | ||
+ | |||
+ | La **clé publique de l' | ||
+ | |||
+ | -- | ||
+ | |||
+ | Si vous rencontrez une erreur indiquant que la clé publique de l' | ||
+ | |||
+ | **1.** Tout d' | ||
+ | |||
+ | < | ||
+ | IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! | ||
+ | Someone could be eavesdropping on you right now (man-in-the-middle attack)! | ||
+ | It is also possible that a host key has just been changed. | ||
+ | The fingerprint for the ECDSA key sent by the remote host is | ||
+ | fa: | ||
+ | Please contact your system administrator. | ||
+ | Add correct host key in / | ||
+ | Offending ECDSA key in / | ||
+ | ECDSA host key for 192.168.100.5 has changed and you have requested strict checking. | ||
+ | Host key verification failed. | ||
+ | </ | ||
+ | |||
+ | **2.** Cela signifie que la clé ECDSA (ECDSA key) utilisée pour sécuriser la connexion entre votre client et l' | ||
+ | |||
+ | **3.** Pour résoudre ce problème, vous devez réinitialiser l' | ||
+ | |||
+ | <code BASH> | ||
+ | ssh-keygen -R 192.168.100.5 | ||
+ | </ | ||
+ | |||
+ | Cette commande supprimera l' | ||
+ | |||
+ | **4.** Une fois que vous avez réinitialisé l' | ||
+ | |||
+ | En suivant ces étapes, vous pourrez résoudre le problème lié au changement de la clé publique de l' | ||
+ | |||
+ | ==== - Possible usurpation DNS ==== | ||
+ | |||
+ | Lorsque vous essayez de vous connecter à un hôte distant via SSH, vous pouvez rencontrer un avertissement indiquant une possible usurpation DNS. Voici le message d' | ||
+ | |||
+ | < | ||
+ | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | ||
+ | @ | ||
+ | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | ||
+ | The ECDSA host key for raspberrypi has changed, | ||
+ | and the key for the corresponding IP address 192.168.100.84 | ||
+ | is unchanged. This could either mean that | ||
+ | DNS SPOOFING is happening or the IP address for the host | ||
+ | and its host key have changed at the same time. | ||
+ | Offending key for IP in / | ||
+ | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | ||
+ | @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! | ||
+ | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | ||
+ | IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! | ||
+ | Someone could be eavesdropping on you right now (man-in-the-middle attack)! | ||
+ | It is also possible that a host key has just been changed. | ||
+ | The fingerprint for the ECDSA key sent by the remote host is | ||
+ | SHA256: | ||
+ | Please contact your system administrator. | ||
+ | Add correct host key in / | ||
+ | Offending ECDSA key in / | ||
+ | ECDSA host key for raspberrypi has changed and you have requested strict checking. | ||
+ | Host key verification failed. | ||
+ | </ | ||
+ | |||
+ | Ce message indique que la clé de l' | ||
+ | |||
+ | Pour résoudre ce problème, vous devez supprimer l' | ||
+ | |||
+ | <code BASH> | ||
+ | ssh-keygen -R raspberrypi | ||
+ | </ | ||
+ | |||
+ | Cette commande supprimera l' | ||
+ | |||
+ | Une fois que vous avez supprimé l' | ||
+ | |||
+ | Assurez-vous de suivre ces étapes pour garantir la sécurité de votre connexion SSH et éviter les risques potentiels liés à une usurpation DNS. | ||
+ | |||
+ | ==== - Choix entre RSA et ECDSA ==== | ||
+ | |||
+ | |||
+ | Le choix entre l' | ||
+ | |||
+ | ECDSA utilise des courbes elliptiques pour la génération de clés et les opérations de signature numérique. Il est généralement considéré comme plus efficace en termes de performances et d' | ||
+ | |||
+ | D' | ||
+ | |||
+ | En fin de compte, le choix entre ECDSA et RSA dépend de la compatibilité avec les systèmes existants, des performances souhaitées et des recommandations de sécurité spécifiques. Il est recommandé de se référer aux recommandations de sécurité en vigueur et de prendre en compte les spécifications et les exigences propres à votre environnement avant de faire un choix. | ||
+ | |||
+ | ===== - Script Bash pour générer une clé privée SSH et configurer la connexion ===== | ||
+ | |||
+ | Voici un script Bash qui demande à l' | ||
+ | |||
+ | <code BASH ssh-keygen-config.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | # Demande à l' | ||
+ | read -p "Nom de l' | ||
+ | read -p " | ||
+ | read -p "Nom d' | ||
+ | |||
+ | # Vérifie si le fichier de clé privée existe déjà | ||
+ | private_key=~/ | ||
+ | if [[ -f $private_key ]]; then | ||
+ | echo "La clé privée pour cet hôte existe déjà : $private_key" | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | # Génère une clé privée avec un nom dynamique basé sur l' | ||
+ | ssh-keygen -t rsa -f $private_key | ||
+ | |||
+ | # Pousse la clé publique sur l' | ||
+ | ssh-copy-id -i $private_key.pub -p $port $username@$hostname | ||
+ | |||
+ | # Crée le fichier de configuration | ||
+ | config_file=~/ | ||
+ | echo "Host $hostname" | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo "" | ||
+ | |||
+ | # Définit les permissions du fichier de configuration | ||
+ | chmod 600 $config_file | ||
+ | |||
+ | echo " | ||
+ | |||
+ | </ | ||
+ | |||
+ | Le nom de la clé privée générée sera basé sur le nom de l' | ||
+ | |||
+ | Assurez-vous d' |