Cet article explique comment se connecter à un serveur cloud à partir d'un ordinateur exécutant Linux® ou MacOS® X à l'aide de Secure Shell (SSH). Il explique également comment générer une clé SSH et ajouter une clé publique au serveur.
Introduction
SSH est un protocole par lequel vous pouvez accéder à votre serveur cloud et exécuter des commandes shell. Vous pouvez utiliser des clés SSH pour identifier les ordinateurs de confiance sans avoir besoin de mots de passe et pour interagir avec vos serveurs.
SSH est crypté avec Secure Sockets Layer (SSL), ce qui rend difficile l'interception et la lecture de ces communications.
Remarque : La plupart des commandes de cet article doivent être exécutées sur votre ordinateur local. Les commandes par défaut répertoriées sont destinées à la ligne de commande Linux ou au terminal MacOS X. Pour établir des connexions SSH à partir de Windows®, vous pouvez utiliser un client similaire au programme gratuit, PuTTY. Pour générer des clés, vous pouvez utiliser un programme associé, PuTTYGen.
Connexion
À l'aide de l'adresse IP (Internet Protocol) et du mot de passe de votre serveur cloud, connectez-vous en exécutant le ssh
suivant commande avec username@ipaddress
comme argument :
ssh [email protected]
Le système vous invite à entrer le mot de passe du compte auquel vous vous reconnectez.
Identification de l'hôte distant
Si vous reconstruisez votre serveur cloud, vous pourriez recevoir le message suivant :
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
L'une des fonctionnalités de sécurité de SSH est que lorsque vous vous connectez à un serveur cloud, l'hôte distant possède sa propre clé qui l'identifie. Lorsque vous essayez de vous connecter, votre client SSH vérifie la clé du serveur par rapport à toutes les clés qu'il a enregistrées lors de connexions précédentes à cette adresse IP. Après avoir reconstruit un serveur cloud, cette clé d'hôte distant change, de sorte que votre ordinateur vous avertit d'une activité potentiellement suspecte.
Pour assurer la sécurité de votre serveur, vous pouvez utiliser la console Web dans le panneau de configuration du cloud pour vérifier la nouvelle clé de votre serveur. Si vous êtes sûr que vous n'êtes pas usurpé, vous pouvez ignorer cette étape et supprimer l'enregistrement de l'ancien SSH clé d'hôte comme suit :
Sur votre local ordinateur, modifiez le SSH known_hosts
fichier et supprimez toutes les lignes qui commencent par l'adresse IP de votre serveur cloud.
Remarque : Utilisez l'éditeur de votre choix, tel que nano
sur le système d'exploitation Debian ou Ubuntuou vi
sur les serveurs RPM ou CENTOS. Pour plus de simplicité, cet article utilise simplement nano
. Si vous préférez utiliser vi
,remplacez vi
pour nano
dans les commandes d'édition. Pour en savoir plus sur l'utilisation de nano
, voir/support/how-to/modify-your-hosts-file/.
nano ~/.ssh/known_hosts
Si vous n'utilisez pas Linux ou MacOS X sur votre ordinateur local, l'emplacement des known_hosts fichier peut différer. Reportez-vous à votre système d'exploitation pour obtenir des informations sur l'emplacement du fichier. PuTTY sous Windows vous offre la possibilité de remplacer la clé d'hôte enregistrée.
Générer une nouvelle paire de clés SSH
Vous pouvez sécuriser l'accès SSH à votre serveur cloud contre les attaques par mot de passe par force brute en utilisant une paire de clés publique-privée. Une clé publique est placée sur le serveur et une clé privée correspondante est placée sur votre ordinateur local. Si vous configurez SSH sur votre serveur pour accepter uniquement les connexions à l'aide de clés, personne ne peut se connecter en utilisant uniquement un mot de passe. Les clients qui se connectent doivent utiliser une clé privée qui a une clé publique enregistrée sur le serveur. Pour en savoir plus sur la sécurité, consultez les meilleures pratiques de sécurité des serveurs Linux.
Utilisez les étapes suivantes pour générer une paire de clés SSH :
-
Exécutez la commande suivante en utilisant votre adresse e-mail comme étiquette.Remplacez votre adresse e-mail par
[email protected]
dans la commande.ssh-keygen -t rsa -C "[email protected]"
Un message indique que votre paire de clés RSA publique-privée est en cours de génération.
À l'invite, appuyez sur Entrée pour utiliser l'emplacement par défaut ou entrez un fichier dans lequel enregistrer la clé et appuyez sur Entrée .
-
Si vous souhaitez bénéficier de la sécurité supplémentaire d'un mot de passe pour la paire de clés, saisissez une phrase secrète et appuyez sur Entrée . Si vous ne souhaitez pas utiliser de mot de passe avec la paire de clés, appuyez sur Entrée pour continuer sans en définir un.
Votre paire de clés est générée et le résultat ressemble à l'exemple suivant :
Your identification has been saved in /LocalFileLocation/id_rsa. Your public key has been saved in /LocalFileLocation/id_rsa.pub. The key fingerprint is: 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]
-
Ajoutez éventuellement votre nouvelle clé à l'agent ssh local file pour permettre à SSH de trouver votre clé sans avoir besoin de spécifier son emplacement à chaque fois que vous vous connectez :
ssh-add ~/.ssh/id_rsa
Vous pouvez utiliser un raccourci de configuration SSH au lieu de ssh-agent fichier en suivant les instructions de la Configuration des raccourcis section plus loin dans cet article.
Ajouter la clé publique à votre compte cloud
Pour faciliter l'ajout de votre clé aux nouveaux serveurs cloud que vous créez, téléchargez la clé publique sur votre compte cloud en suivant ces étapes :
-
Connectez-vous au panneau de configuration du cloud.
-
Dans la barre de navigation supérieure, cliquez sur Sélectionner un produit> Rackspace Cloud .
-
Sélectionnez Serveurs> Clés SSH .
-
Cliquez sur Ajouter une clé publique .
-
Saisissez un nom de clé, tel que Ordinateur portable professionnel , pour vous rappeler à quel ordinateur cette clé est destinée.
-
Sélectionnez la région pour laquelle vous souhaitez stocker la clé publique. Pour stocker votre clé dans plusieurs régions, répétez ces étapes pour chaque région. La clé doit résider dans la même région que le serveur.
-
Collez le contenu de id_rsa.pub fichier que vous avez créé dans la clé publique champ. Vous pouvez obtenir le contenu du fichier en ouvrant le fichier dans un éditeur de texte ou en exécutant la commande suivante :
cat ~/.ssh/id_rsa.pub
-
Cliquez sur Ajouter une clé publique .
Si vous souhaitez ajouter la clé manuellement, au lieu d'utiliser le Panneau de configuration, consultez les meilleures pratiques de sécurité du serveur Linux et utilisez la commande suivante :
ssh-copy-id -i ~/.ssh/id_rsa.pub {username}@{remotePublicIPAddress}
Créer un nouveau serveur en utilisant une clé stockée
Lorsque vous créez un nouveau serveur cloud, vous pouvez ajouter une clé stockée au nouveau serveur.
-
Sur le Créer un serveur page, développez les Options avancées rubrique.
-
Depuis la clé SSH menu, sélectionnez votre clé dans la liste.
-
Si vous ne voyez pas de clé stockée dans la liste, vous pouvez effectuer l'une des actions suivantes :
- Faites basculer la région du nouveau serveur vers la région où vous avez stocké la clé SSH.
- Répétez les étapes de la section précédente, Ajoutez la clé publique à votre compte cloud , pour ajouter la clé à la région dans laquelle vous souhaitez créer le nouveau serveur.
Ajouter la clé à un serveur existant
Vous ne pouvez pas utiliser le panneau de configuration du cloud pour ajouter une clé publique à un serveur existant. Suivez ces étapes pour ajouter la clé manuellement :
-
Sur votre serveur cloud, créez un répertoire nommé .ssh dans le dossier d'accueil de l'utilisateur auquel vous vous connectez en utilisant SSH.
mkdir -p ~/.ssh
-
Créer ou modifier les authorized_keys fichier et ajoutez votre clé publique à la liste des clés autorisées en utilisant la commande suivante :
nano ~/.ssh/authorized_keys
Une clé est sur une seule ligne, alors assurez-vous que la clé n'est pas cassée par des sauts de ligne. Vous pouvez avoir plusieurs clés dans les authorized_keys fichier, avec une clé par ligne.
-
Définissez les autorisations correctes sur la clé à l'aide des commandes suivantes :
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
-
Si vous rencontrez des problèmes et que vous devez résoudre des problèmes d'autorisations, exécutez la commande suivante :
restorecon -R -v /root/.ssh
Après avoir ajouté la clé publique aux authorized_keys , vous pouvez établir une connexion SSH en utilisant votre paire de clés au lieu du mot de passe du compte.
Configuration des raccourcis
Utilisez les instructions suivantes pour configurer un raccourci de connexion en créant un ~/.ssh/config fichier sur votre ordinateur local et en y ajoutant votre serveur et les détails de la clé.
-
À l'aide d'un éditeur de texte, ajoutez le texte suivant au ~/.ssh/config fichier, en modifiant les valeurs pour qu'elles correspondent aux informations de votre serveur :
Host shortcutName HostName serverAddressOrIPAddress User remoteUsername IdentityFile /path/to/appropriate/ssh/rsa/private/key
Chacune des entrées suivantes décrit une fonctionnalité du serveur :
- Hôte : Un nom de raccourci que vous utilisez pour indiquer à SSH d'utiliser cette connexion.
- Nom d'hôte : L'adresse du serveur auquel vous vous connectez.
- Utilisateur : Le nom du compte utilisateur auquel se connecter sur le serveur.
- Fichier d'identité : L'emplacement du fichier de clé privée (id_rsa).
-
Après avoir configuré la config fichier, connectez-vous au serveur en utilisant la commande suivante avec votre nom de raccourci :
ssh shortcutName
Dépannage
Si vous ne parvenez pas à établir une nouvelle connexion après avoir redémarré le serveur, utilisez les étapes suivantes pour vous aider à résoudre le problème :
-
La meilleure façon de résoudre les problèmes de connexion SSH ou SFTP est d'essayer de se connecter via SSH tout en étant connecté à la console d'urgence et de consulter le journal, qui inclut généralement la raison de l'échec. Si aucune raison n'est donnée, il peut s'agir d'un problème de pare-feu. Pour les serveurs RPM, exécutez la commande suivante pour consulter le journal :
tail -f /var/log/secure
Pour les serveurs Debian, exécutez la commande suivante pour consulter le journal :
tail -f /var/log/auth.log
-
Si vous obtenez un
connection timeout
erreur, vérifiez l'adresse IP que vous avez utilisée pour vous assurer qu'elle est correcte. Vous pouvez également vérifier les iptables du serveur pour vous assurer qu'il ne bloque pas le port utilisé par SSH. -
Si vous obtenez un
connection refused
erreur, vous essayez peut-être d'utiliser SSH avec le mauvais port. Si vous avez changé votre serveur pour écouter un port autre que 22, utilisez le-p
option avec SSH pour spécifier le port. -
Si votre connexion est rejetée, vous pourriez avoir un problème avec votre clé. Changez le
sshd
configuration pour autoriser les connexions par mot de passe en définissantPasswordAuthentication
àyes
. Redémarrez le serveur et réessayez. Si vous vous connectez après ces changements, alors le problème vient de la clé et vous devez vérifier que la clé se trouve au bon endroit sur le serveur. -
Si tout le reste échoue, passez en revue vos modifications et redémarrez le démon SSH sur le serveur en exécutant la commande suivante :
sudo service ssh restart
Si vous recevez un message indiquant que le service SSH est inconnu, exécutez la commande avec
sshd
comme nom de service à la place.