Dépannage de la connexion SSH

Si vous ne parvenez pas à vous connecter à une instance de calcul à l'aide de SSH, consultez les messages d'erreur et suggestions de dépannage suivants pour résoudre le problème.

Conseil

S'il s'agit de la première fois que vous créez une instance, considérez l'un des éléments suivants pour un tutoriel guidé :
Conseil

Si c'est la première fois que vous créez une instance, nous vous recommandons de créer d'abord un réseau en nuage virtuel (VCN). Vous pouvez utiliser le flux de travail "Démarrer l'Assistant VCN" et sélectionner l'option "Créer un VCN avec connectivité Internet". Le flux de travail crée un VCN qui configure automatiquement un sous-réseau public et un sous-réseau privé, ainsi que toutes les passerelles et règles de routage requises. En outre, le flux de travail fournit une option pour configurer IPv6. Pour plus de détails sur l'exécution du flux de travail, voir : Démarrage rapide du réseau virtuel.

Erreur SSH : connexion au port w.x.y.z de l'hôte 22 : Temporisation de l'opération

L'erreur signifie que SSH ne peut pas se connecter à l'hôte à l'adresse IP spécifiée. Vérifiez les scénarios suivants pour résoudre le problème.

S'assurer que le système dispose d'un accès Internet

Assurez-vous que l'environnement de la commande SSH est en cours d'exécution et dispose d'un accès Internet
  • Windows : Ouvrez une fenêtre d'invite de commande.
  • MacOS/Linux : Ouvrez une fenêtre de terminal.
  • Effectuez une commande ping sur un hôte bien connu tel que google.com ou amazon.com.
  • Si la commande ping réussit, passez à l'option suivante.
Échec du ping

Votre environnement SSH n'a peut-être pas accès à Internet. Si vous n'êtes pas sûr des paramètres de pare-feu de vos organisations pour l'accès Internet, envisagez d'utiliser OCI Cloud Shell pour accéder à l'instance par SSH. Pour plus de détails, voir la section Cloud Shell pour OCI dans cette page.

Serveurs proxy
Si votre organisation utilise des serveurs proxy pour se connecter à Internet, assurez-vous que vos paramètres proxy sont corrects. Consultez la documentation sur les mandataires de vos organisations, car les paramètres peuvent varier en fonction de la configuration du mandataire et du système d'exploitation utilisé.

Vérifier les paramètres OCI

Vérifiez ensuite les paramètres OCI pour vérifier votre configuration.

Ouvrir les détails de l'instance
  • Connectez-vous à la console OCI.
  • Ouvrez le menu de navigation et sélectionnez Calcul. Sous Calcul, sélectionnez Instances.
  • Sélectionnez l'instance qui vous intéresse. La page des détails de l'instance s'affiche.
Vérifiez les paramètres suivants
  • Assurez-vous que l'instance est en cours d'exécution et n'est pas arrêtée.
  • Assurez-vous que l'instance a une adresse IP publique.
    • Consultez la section Accès à l'instance. Si une adresse IP publique est affectée, l'adresse est étiquetée : Adresse IP pour accès public :
    • Si la section Accès à l'instance est vide, aucune adresse IP publique n'est affectée.
  • Si vous avez une adresse publique, assurez-vous d'utiliser l'adresse IP correcte dans votre commande SSH.
  • Si vous n'avez pas d'adresse IP publique, vérifiez votre sous-réseau VCN.
  • Si vous avez créé une instance sur un sous-réseau public, mais que vous n'avez pas affecté d'adresse IP publique lors de la création de l'instance, vous pouvez toujours affecter l'adresse, voir : Affectation d'une adresse IP publique éphémère à une adresse IP privée principale existante.
    • Après avoir défini l'adresse IP, redémarrez l'instance et essayez d'utiliser SSH pour vous connecter à votre instance.

L'instance a une adresse IP publique sur un sous-réseau public et je ne peux toujours pas me connecter

Si vous débutez dans OCI, les étapes de dépannage suivantes sont plus avancées. Pour accélérer les choses, envisagez de configurer un nouveau VCN et une nouvelle instance de calcul, comme décrit dans les conseils suivants.

Conseil

S'il s'agit de la première fois que vous créez une instance, considérez l'un des éléments suivants pour un tutoriel guidé :
Conseil

Si c'est la première fois que vous créez une instance, nous vous recommandons de créer d'abord un réseau en nuage virtuel (VCN). Vous pouvez utiliser le flux de travail "Démarrer l'Assistant VCN" et sélectionner l'option "Créer un VCN avec connectivité Internet". Le flux de travail crée un VCN qui configure automatiquement un sous-réseau public et un sous-réseau privé, ainsi que toutes les passerelles et règles de routage requises. En outre, le flux de travail fournit une option pour configurer IPv6. Pour plus de détails sur l'exécution du flux de travail, voir : Démarrage rapide du réseau virtuel.
Ouvrir les détails de l'instance
  • Connectez-vous à la console OCI.
  • Ouvrez le menu de navigation et sélectionnez Calcul. Sous Calcul, sélectionnez Instances.
  • Sélectionnez l'instance qui vous intéresse. La page des détails de l'instance s'affiche.
Vérifier la configuration du VCN
  • Cliquez sur le VCN affecté à cette instance.
  • Assurez-vous qu'au moins une passerelle Internet est disponible dans la ressource Passerelles Internet.
    • Si aucune passerelle Internet n'est affectée, allez à la section suivante.
  • Si une passerelle Internet est affectée, assurez-vous qu'une règle de routage est affectée à votre sous-réseau public.
    • Sous la ressource Sous-réseaux, sélectionnez votre sous-réseau public.
    • Sous Informations sur le sous-réseau, cliquez sur le lien Table de routage.
    • Assurez-vous qu'il existe une route statique avec une destination de 0.0.0.0/0.
    • Si l'entrée d'itinéraire est manquante, allez à la section suivante.
Mon sous-réseau public n'est pas configuré correctement

S'il s'affiche, votre sous-réseau public n'est pas configuré correctement, vous disposez de deux options pour reconfigurer votre sous-réseau.

(1) Utilisez l'action rapide du service de calcul.

À partir de la page des détails de l'instance :

  • Dans la liste Ressources, sélectionnez Actions rapides.
  • Cliquez sur Connexion dans l'action rapide Connecter le sous-réseau public à Internet.
  • Suivez le flux de travail pour connecter votre instance.

(2) Créer manuellement un sous-réseau public.

  • Utilisez le document Scénario A : Sous-réseau public pour suivre les étapes de configuration et de configuration d'un nouveau sous-réseau public.
  • Créez une instance de calcul dans le nouveau sous-réseau public.
Vérifier les listes de sécurité

Si vous continuez à rencontrer des problèmes, assurez-vous que vos listes de sécurité autorisent le trafic sur le port 22. Voir Listes de sécurité pour plus de détails.

Dépannage avancé

Si vous êtes un utilisateur avancé, vous pouvez utiliser l'analyseur de chemins réseau pour dépanner davantage la connexion réseau. Voir Analyseur de chemin de réseau pour plus de détails.

SSH : Connexion à l'hôte port w.x.y.z 22 : Connexion refusée

Ce message d'erreur est dû au fait qu'un hôte écoute à l'adresse cible, mais que vous ne pouvez pas vous connecter au port 22.

Utilisez Netcat(nc) pour vérifier que SSH est en cours d'exécution

Linux ou MacOS

Dans une fenêtre de terminal, exécutez la commande suivante :

nc <public ip> 22
  • Si la commande retourne un message similaire à : SSH-2.0-OpenSSH_9.4

    Vous êtes connecté à l'instance et SSH vérifié est en cours d'exécution. Vérifiez l'adresse IP dans votre commande SSH, assurez-vous qu'elle est correcte.

  • Si la commande ne retourne rien :

    • Vérifiez l'adresse IP publique dans la page des détails de l'instance pour vous assurer que vous utilisez la bonne adresse.
    • Vérifiez l'adresse IP utilisée dans la commande, assurez-vous qu'elle est correcte.

    Sinon, passez à la section suivante.

Windows

Dans une fenêtre PowerShell, exécutez la commande suivante :

tnc <public ip> -p 22
  • Si la commande renvoie un message similaire à :

    ComputerName     : <public ip>
                                    RemoteAddress    : <public ip>
                                    RemotePort       : 22
                                    InterfaceAlias   : Ethernet
                                    SourceAddress    : <source ip>
                                    TcpTestSucceeded : True

    Vous êtes connecté à l'instance et SSH vérifié est en cours d'exécution. Vérifiez l'adresse IP dans la commande SSH, assurez-vous qu'elle est correcte.

  • Si la commande retourne : WARNING: TCP connect to (<public ip>) failed
    • Vérifiez l'adresse IP publique dans la page des détails de l'instance pour vous assurer d'utiliser la bonne adresse.
    • Vérifiez l'adresse IP utilisée dans la commande, assurez-vous qu'elle est correcte.

    Sinon, continuez le dépannage avec la section suivante.

SSH n'est pas en cours d'exécution

  • Vérifiez que l'instance se trouve sur un sous-réseau public.
  • Assurez-vous que les listes de sécurité sont configurées pour autoriser les connexions au port 22. Voir Listes de sécurité pour plus de détails.
  • Redémarrez l'instance pour redémarrer le démon SSH.
  • Avancé : Si vous utilisez une image personnalisée et que vous devez démarrer ou installer le service SSH, utilisez la console série pour vous connecter à l'instance.

<user-name>@w.x.y.z : Autorisation refusée (publickey, gssapi-keyex, gssapi-with-mic)

Ce message d'erreur indique que SSH se connecte à l'hôte du service SSH, mais qu'il y a un problème avec la commande SSH.

Vérifiez les problèmes suivants avec votre commande SSH

  • Vérifiez toutes les options de ligne de commande pour SSH. Toute option incorrecte peut provoquer ce message d'erreur.
    • Voici un exemple de commande SSH correctement formatée pour la connexion à Oracle Linux.
      ssh -i <my-private-key-file> opc@x.x.x.x
  • Assurez-vous d'utiliser le nom d'utilisateur approprié pour l'instance :
    • Pour Oracle Linux ou un autre OSes compatible avec Red Hat, utilisez opc.
    • Pour Ubuntu Linux, utilisez ubuntu.
  • Assurez-vous d'utiliser la clé privée appropriée. L'utilisation d'un fichier de clé privée incorrect entraînera ce message d'erreur.
    • Assurez-vous d'être dans le répertoire contenant la clé.
    • Vous pouvez également vous assurer que le chemin d'accès à la clé privée est correct.
  • J'ai perdu ma clé privée.
    • Créez une nouvelle instance et téléchargez les nouvelles clés publiques et privées.
    • Créez un nouveau jeu de clés publique et privée. Créez une autre instance.

Connexion SSH refusée à l'aide des fichiers clés PuTTYgen : "Autorisation refusée (publickey, gssapi-keyex, gssapi-with-mic)"

Cela se produit car les instances Linux prennent en charge les clés SSH générées par OpenSSH et les clés SSH générées par PuTTYgen utilisent un format différent.

Rendre les formats de clé SSH correspondants

Si vous utilisez des clés .ppk générées avec PuTTYgen pour vous connecter à une instance Linux à l'aide de la commande SSH OpenSSH, la connexion échoue. Par exemple :

$ ssh -i deployment_key.txt opc@<IP_ADDRESS>
Enter passphrase for key 'deployment_key.txt':
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Cette erreur se produit car les instances Linux prennent en charge les clés SSH générées par OpenSSH et les clés SSH générées par PuTTYgen utilisent un format différent. Pour résoudre ce problème, utilisez PuTTYgen pour convertir les clés au format de clé OpenSSH. Ensuite, les clés peuvent être utilisées avec la commande SSH pour se connecter à une instance Linux.

  1. Si vous n'avez pas PuTTYgen, téléchargez-le à l'adresse https://www.puttygen.com/ et installez-le.
  2. Ouvrez PuTTYgen.
  3. Cliquez sur Fichier, puis sur Charger la clé privée.
  4. Naviguez jusqu'au fichier de clé privée PuTTY (.ppk), puis cliquez sur Ouvrir.
  5. (Facultatif) Entrez une phrase secrète de clé.
  6. Cliquez sur Conversions, puis sur Exporter la clé OpenSSH.

    Si vous n'avez pas utilisé de phrase secrète, cliquez sur Oui à l'adresse PuTTYgen Avertissement pour continuer.

  7. Dans la fenêtre Enregistrer la clé privée sous :, entrez un nom de fichier pour la clé convertie, puis cliquez sur Enregistrer.

Vous pouvez maintenant utiliser la clé convertie pour vous connecter à votre instance Linux.

Échec de SSH avec l'erreur : "Authentication Refused : Bad Ownership or Modes for Directory"

Cette erreur se produit car des autorisations incorrectes sont définies dans le répertoire /home/<USERNAME> ou le fichier .ssh/authorized_keys.

Note

Les exemples de chemins d'accès au répertoire de base dans cette astuce de dépannage utilisent Oracle Linux. Le chemin d'accès au répertoire de base peut différer en fonction du système d'exploitation. Par exemple, le chemin d'accès au répertoire de base dans MacOS est /Users/<USERNAME>.

Définir les autorisations correctes

Si vous avez des autorisations incorrectes définies dans le répertoire /home/<USERNAME> ou le fichier .ssh/authorized_keys, la connexion à une instance Linux à l'aide de SSH peut échouer.

Par exemple :

login as: <username>
Server refused our key

Si vous consultez les fichiers journaux /var/log/secure sur l'instance Linux, la raison de l'erreur s'affiche :

<SERVER> sshd[6245]: Authentication refused: bad ownership or modes for directory /home/<USERNAME>

Pour corriger l'erreur, définissez les autorisations sur le répertoire de base ou le fichier .ssh/authorized_keys, utilisez la commande chmod :

# chmod 700 /home/<username>
# chmod 700 /home/<username>/.ssh/
# chmod 600 /home/username/.ssh/authorized_keys

Utilisation de Cloud Shell pour se connecter à une instance OCI

OCI Cloud Shell est un terminal basé sur un navigateur Web accessible à partir de la console OCI. L'utilisation de Cloud Shell est gratuite (dans les limites mensuelles de la location) et donne accès à un interpréteur de commandes Linux, avec une interface de ligne de commande OCI préauthentifiée, une installation Ansible préauthentifiée et d'autres outils utiles.

Si vous rencontrez des problèmes de connectivité avec votre instance, Cloud Shell est une option efficace pour vous connecter avec SSH. Comme Cloud Shell est basé sur un navigateur, il élimine tous les problèmes de connectivité potentiels dus aux paramètres d'ordinateur portable ou de pare-feu d'entreprise. Cette section vous relie aux informations sur les façons dont vous pouvez utiliser Cloud Shell.

Utilisation d'un sous-réseau privé

Si votre instance de calcul se trouve sur un sous-réseau privé, il existe généralement deux scénarios.

(1) L'instance se trouve sur un sous-réseau privé mais doit se trouver sur un sous-réseau public

Pour avoir l'instance sur un sous-réseau public, vous disposez des options suivantes.

  • Créez une instance dans un sous-réseau public du VCN courant. Mettez fin à l'ancienne instance.
  • Créez un nouveau sous-réseau public dans le VCN courant. Créez une instance dans le nouveau sous-réseau public. Mettez fin à l'ancienne instance.
  • Créez un nouveau VCN avec un sous-réseau public, puis créez une instance dans le sous-réseau public. Mettez fin à l'ancienne instance.
Conseil

S'il s'agit de la première fois que vous créez une instance, considérez l'un des éléments suivants pour un tutoriel guidé :
Conseil

Si c'est la première fois que vous créez une instance, nous vous recommandons de créer d'abord un réseau en nuage virtuel (VCN). Vous pouvez utiliser le flux de travail "Démarrer l'Assistant VCN" et sélectionner l'option "Créer un VCN avec connectivité Internet". Le flux de travail crée un VCN qui configure automatiquement un sous-réseau public et un sous-réseau privé, ainsi que toutes les passerelles et règles de routage requises. En outre, le flux de travail fournit une option pour configurer IPv6. Pour plus de détails sur l'exécution du flux de travail, voir : Démarrage rapide du réseau virtuel.
(2) L'instance se trouve intentionnellement sur un sous-réseau privé

Lorsque l'instance de calcul se trouve sur un sous-réseau privé, vous pouvez vous y connecter à l'aide des éléments suivants :

Options supplémentaires de dépannage des connexions et des instances

Cette page utilise la commande SSH pour se connecter à une instance. Voici d'autres outils disponibles pour dépanner les instances de calcul.

Dépannage avec la console série

À l'aide d'une connexion à la console OCI, vous pouvez utiliser la console série de l'instance pour vous connecter à l'instance. Cela vous permet de dépanner et de configurer une instance à distance. Pour plus d'informations, voir Résolution des instances à partir de la connexion à la console d'instance.

À partir de la console série, vous pouvez effectuer les tâches d'administration suivantes :

Observer l'état des instances

Dans la page des détails de l'instance, vous pouvez observer les mesures liées à l'instance, notamment son état. La mesure oci_compute_instance_health vous permet de surveiller si une instance de machine virtuelle ne répond pas. Le service Calcul envoie une demande de protocole de résolution d'adresse (ARP) à la carte d'interface réseau virtuelle (VNIC) de l'instance. Si la commande ping ARP échoue, la mesure indique que l'instance ne répond pas.

Pour utiliser la mesure, sélectionnez oci_compute_instance_health dans le contrôle Espace de noms de mesure de la page de détails. Pour plus d'informations, voir Mesures de l'état des instances de calcul.

Autres sections de dépannage du service de calcul

En plus de SSH, les rubriques de dépannage suivantes sont également disponibles.