GNU/Linux >> Tutoriels Linux >  >> Linux

Connectez-vous à un serveur en utilisant SSH sous Linux ou Mac OS X

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 :

  1. 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 .

  2. 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]
    
  3. 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 :

  1. Connectez-vous au panneau de configuration du cloud.

  2. Dans la barre de navigation supérieure, cliquez sur Sélectionner un produit> Rackspace Cloud .

  3. Sélectionnez Serveurs> Clés SSH .

  4. Cliquez sur Ajouter une clé publique .

  5. Saisissez un nom de clé, tel que Ordinateur portable professionnel , pour vous rappeler à quel ordinateur cette clé est destinée.

  6. 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.

  7. 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
    
  8. 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.

  1. Sur le Créer un serveur page, développez les Options avancées rubrique.

  2. Depuis la clé SSH menu, sélectionnez votre clé dans la liste.

  3. 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 :

  1. 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
    
  2. 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.

  3. Définissez les autorisations correctes sur la clé à l'aide des commandes suivantes :

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  4. 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é.

  1. À 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).
  2. 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éfinissant PasswordAuthentication à 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.


Linux
  1. SSH sans mot de passe utilisant des paires de clés publiques-privées

  2. Comment Ssh vers un serveur en utilisant un autre serveur ? ?

  3. Premiers pas avec SSH sous Linux

  4. Comment réinitialiser le mot de passe Plesk Admin en utilisant SSH dans Linux Server ?

  5. Liaisons de touches efficaces sous Mac et Linux

12 choses à faire après l'installation d'un serveur Linux

Comment générer et utiliser une clé SSH avec PuTTY

Comment SSH au serveur via Linux

Générer des clés RSA avec SSH en utilisant PuTTYgen

Connectez-vous à un serveur Linux avec une clé privée SSH sur un client Windows

Comment utiliser SSH pour se connecter à un serveur distant sous Linux ou Windows