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 de dépannage et les suggestions suivants pour résoudre le problème.

Conseil

Si vous créez une instance pour la première fois, pour un tutoriel guidé, tenez compte des points suivants :
Conseil

Si vous créez une instance pour la première fois, nous vous recommandons de créer d'abord un réseau cloud virtuel (VCN). Vous pouvez utiliser le workflow "Démarrer l'assistant VCN" et sélectionner l'option "Créer un VCN avec la connectivité Internet". Le workflow crée un VCN qui configure automatiquement à la fois 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 workflow fournit une option permettant de configurer IPv6. Pour plus de détails sur l'exécution du workflow, reportez-vous à la section Démarrage rapide de Virtual Networking.

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

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

Assurez-vous que le système dispose d'un accès Internet

Assurez-vous que l'environnement que la commande SSH exécute et dispose d'un accès Internet
  • Windows : ouvrez une fenêtre d'invite des commandes.
  • MacOS/Linux : ouvrez une fenêtre de terminal.
  • Envoyez une commande ping à un hôte bien connu tel que google.com ou amazon.com.
  • Si la commande ping réussit, passez à l'option suivante.
Echec de la commande 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 votre organisation pour l'accès Internet, envisagez d'utiliser OCI Cloud Shell pour établir un accès SSH à l'instance. Pour plus de détails, reportez-vous à la section OCI Cloud Shell sur cette page.

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

Vérification des paramètres OCI

Ensuite, vérifiez 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 Compute. Sous Compute, sélectionnez Instances.
  • Sélectionnez l'instance qui vous intéresse. La page de détails de l'instance apparaît.
Vérifiez les paramètres suivants
  • Assurez-vous que l'instance est en cours d'exécution et qu'elle n'est pas arrêtée.
  • Vérifiez que l'instance dispose d'une adresse IP publique.
    • Consultez la section Accès à l'instance. Si une adresse IP publique est affectée, l'adresse est libellée : Adresse IP d'accès public :
    • Si la section Accès à l'instance est vide, aucune adresse IP publique n'est affectée.
  • Si vous disposez d'une adresse publique, assurez-vous que vous utilisez la bonne adresse IP 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 n'avez pas affecté d'adresse IP publique lors de la création de l'instance, vous pouvez toujours affecter l'adresse. Reportez-vous à 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 à l'instance.

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

Si vous ne connaissez pas encore 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 Compute comme décrit dans les conseils suivants.

Conseil

Si vous créez une instance pour la première fois, pour un tutoriel guidé, tenez compte des points suivants :
Conseil

Si vous créez une instance pour la première fois, nous vous recommandons de créer d'abord un réseau cloud virtuel (VCN). Vous pouvez utiliser le workflow "Démarrer l'assistant VCN" et sélectionner l'option "Créer un VCN avec la connectivité Internet". Le workflow crée un VCN qui configure automatiquement à la fois 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 workflow fournit une option permettant de configurer IPv6. Pour plus de détails sur l'exécution du workflow, reportez-vous à la section Démarrage rapide de Virtual Networking.
Ouvrir les détails de l'instance
  • Connectez-vous à la console OCI.
  • Ouvrez le menu de navigation et sélectionnez Compute. Sous Compute, sélectionnez Instances.
  • Sélectionnez l'instance qui vous intéresse. La page de détails de l'instance apparaît.
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, passez à 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 un routage statique avec la destination 0.0.0.0/0.
    • Si l'entrée de routage est manquante, passez à la section suivante.
Mon sous-réseau public n'est pas correctement configuré

Si votre sous-réseau public n'est pas configuré correctement, vous avez deux options pour le reconfigurer.

(1) Utiliser l'action rapide de calcul.

Sur la page de détails de l'instance :

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

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

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

Si vous continuez à avoir des problèmes, assurez-vous que vos listes de sécurité autorisent le trafic sur le port 22. Pour plus d'informations, reportez-vous à Listes de sécurité.

Dépannage avancé

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

SSH : connexion au port 22 de l'hôte w.x.y.z : 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 renvoie un message similaire à : SSH-2.0-OpenSSH_9.4

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

  • Si la commande ne renvoie rien :

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

    Sinon, passez à la section suivante.

Fenêtres

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 vous êtes connecté à l'instance et SSH vérifié est en cours d'exécution. Vérifiez deux fois l'adresse IP dans la commande SSH, assurez-vous qu'elle est correcte.

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

    Sinon, poursuivez la résolution des incidents avec la section suivante.

SSH non 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. Pour plus d'informations, reportez-vous à Listes de sécurité.
  • 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 : droit d'accès refusé (publickey,gssapi-keyex,gssapi-with-mic)

Ce message d'erreur indique que SSH se connecte à l'hôte du service SSH, mais que la commande SSH présente un problème.

Recherchez les problèmes suivants avec votre commande SSH

  • Vérifiez deux fois toutes les options de ligne de commande pour SSH. Toute option incorrecte peut entraîner ce message d'erreur.
    • Voici un exemple de commande SSH correctement formatée permettant de se connecter à Oracle Linux.
      ssh -i <my-private-key-file> opc@x.x.x.x
  • Assurez-vous que vous utilisez le nom utilisateur correct pour l'instance :
    • Pour Oracle Linux ou tout autre Red Hat compatible OSes, utilisez opc.
    • Pour Ubuntu Linux, utilisez ubuntu.
  • Assurez-vous d'utiliser la clé privée appropriée. L'utilisation d'un fichier de clés privées incorrect génère ce message d'erreur.
    • Assurez-vous que vous êtes 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 publique et privée.
    • Créez un nouvel ensemble de clés publique et privée. Créer une instance.

Connexion SSH refusée à l'aide des fichiers de 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.

Faire correspondre les formats de clé SSH

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 ne disposez pas de PuTTYgen, téléchargez-le à partir de https://www.puttygen.com/ et installez-le.
  2. Ouvrez PuTTYgen.
  3. Cliquez sur Fichier, puis sur Charger la clé privée.
  4. Accédez au fichier de clés privées PuTTY (.ppk), puis cliquez sur Ouvrir.
  5. (Facultatif) Entrez une phrase de passe de clé.
  6. Cliquez sur Conversions, puis sur Exporter la clé OpenSSH.

    Si vous n'avez pas utilisé de phrase de passe, cliquez sur Yes dans l'avertissement PuTTYgen pour continuer.

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

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

Echec de SSH avec erreur : "Authentification refusée : propriété incorrecte ou modes pour le répertoire"

Cette erreur se produit car des droits d'accès incorrects sont définis sur le répertoire /home/<USERNAME> ou le fichier .ssh/authorized_keys.

Remarque

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

Définir les autorisations correctes

Si des droits d'accès incorrects sont définis sur 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, le motif de l'erreur apparaît :

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

Pour corriger l'erreur, définissez les droits d'accès 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 la connexion à une instance OCI

OCI Cloud Shell est un terminal Web accessible à partir de la console OCI. Cloud Shell est gratuit (dans les limites mensuelles des locations) et donne accès à un shell Linux, avec une CLI OCI pré-authentifiée, une installation Ansible pré-authentifiée et d'autres outils utiles permettant de suivre les laboratoires et les outils utiles.

Si vous rencontrez des problèmes de connectivité avec votre instance, Cloud Shell est une option efficace pour la connexion avec SSH. Cloud Shell étant basé sur un navigateur, il élimine tout problème de connectivité potentiel dû aux paramètres de pare-feu de l'entreprise ou de l'ordinateur portable. Cette section fournit des liens vers les informations sur la façon dont vous pouvez utiliser Cloud Shell.

Utilisation d'un sous-réseau privé

Si votre instance Compute 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 que l'instance se trouve sur un sous-réseau public, vous disposez des options suivantes.

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

Si vous créez une instance pour la première fois, pour un tutoriel guidé, tenez compte des points suivants :
Conseil

Si vous créez une instance pour la première fois, nous vous recommandons de créer d'abord un réseau cloud virtuel (VCN). Vous pouvez utiliser le workflow "Démarrer l'assistant VCN" et sélectionner l'option "Créer un VCN avec la connectivité Internet". Le workflow crée un VCN qui configure automatiquement à la fois 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 workflow fournit une option permettant de configurer IPv6. Pour plus de détails sur l'exécution du workflow, reportez-vous à la section Démarrage rapide de Virtual Networking.
(2) L'instance se trouve intentionnellement sur un sous-réseau privé

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

  • Cloud Shell : pour plus de détails, reportez-vous à la section OCI Cloud Shell sur cette page.
  • Bastion fournit un accès restreint et limité dans les temps aux ressources cible qui ne disposent pas d'adresses publiques. Pour plus d'informations, reportez-vous à Présentation de Bastion.

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

Cette page se concentre sur l'utilisation de la commande SSH pour se connecter à une instance. Voici d'autres outils disponibles pour dépanner les instances Compute.

Dépannage de la console série

A l'aide d'une connexion à la console OCI, vous pouvez utiliser la console série de l'instance pour vous connecter à l'instance. Vous pouvez ainsi dépanner et configurer une instance à distance. Pour plus d'informations, reportez-vous à Dépannage des instances à l'aide de la connexion à la console d'instance.

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

Observer l'état de l'instance

Sur la page de détails de l'instance, vous pouvez observer les mesures relatives à l'instance, y compris son état. La mesure oci_compute_instance_health vous permet de surveiller si une instance de machine virtuelle ne répond pas. Compute envoie une demande ARP (Address Resolution Protocol) à la carte d'interface réseau virtuelle de l'instances. 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 sur la page de détails. Pour plus d'informations, reportez-vous à Mesures d'état d'instance Compute.

Autres sections de dépannage de Compute

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