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 votre première création d'instance, pour un tutoriel guidé, tenez compte des points suivants :
Conseil

S'il s'agit de votre première création d'instance, 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 un sous-réseau public et 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 d'informations sur l'exécution du workflow, reportez-vous à Démarrage rapide des fonctions de réseau virtuel.

Erreur SSH : connexion à l'hôte w.x.y.z port 22 : l'opération a expiré

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 la commande SSH de l'environnement est en cours d'exécution et qu'elle dispose d'un accès Internet
  • Windows : ouvrez une fenêtre d'invite de commande.
  • 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 ping

Votre environnement SSH peut ne pas avoir 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 utiliser SSH vers 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 vos paramètres 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

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 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.
  • Assurez-vous 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 sera étiqueté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 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 êtes sur un sous-réseau privé, vous ne pouvez pas vous connecter à votre instance à partir d'Internet. Reportez-vous à la section Utilisation d'un sous-réseau privé.
  • Si vous avez créé une instance sur un sous-réseau public, mais que vous n'avez pas attribué d'adresse IP publique lors de la création de l'instance, vous pouvez toujours attribuer cette 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 découvrez 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

S'il s'agit de votre première création d'instance, pour un tutoriel guidé, tenez compte des points suivants :
Conseil

S'il s'agit de votre première création d'instance, 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 un sous-réseau public et 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 d'informations sur l'exécution du workflow, reportez-vous à Démarrage rapide des fonctions de réseau virtuel.
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érification de 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 au 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 configuré correctement

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

(1) Utiliser l'action rapide de calcul.

Sur la page Détails de l'instance :

  • Dans la liste Ressources, sélectionnez Actions rapides.
  • Cliquez sur Connecter dans l'action rapide Connecter le 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 parcourir les étapes de configuration et de configuration d'un nouveau sous-réseau public.
  • Créez une instance Compute dans le 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. 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 à Network Path Analyzer.

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

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

  • Si la commande ne renvoie aucun résultat :

    • 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 l'adresse IP utilisée dans la commande et 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 avez vérifié que SSH est en cours d'exécution. Vérifiez deux fois l'adresse IP dans la commande SSH et 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 l'adresse correcte.
    • Vérifiez l'adresse IP utilisée dans la commande et assurez-vous qu'elle est correcte.

    Sinon, poursuivez 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.
    • Si l'instance se trouve sur un sous-réseau privé, vous ne pouvez pas vous connecter directement à l'instance. Reportez-vous à la section Utilisation d'un sous-réseau privé.
  • 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 : 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 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 entraîner 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 que vous utilisez le nom utilisateur correct pour l'instance :
    • Pour Oracle Linux ou tout autre OSes compatible Red Hat, utilisez opc.
    • Pour Ubuntu Linux, utilisez ubuntu.
  • Assurez-vous d'utiliser la bonne clé privée. L'utilisation d'un fichier de clés privées incorrect entraînera ce message d'erreur.
    • Assurez-vous que vous êtes dans le répertoire contenant la clé.
    • Vous pouvez également vous assurer que le chemin de la clé privée est correct.
  • J'ai perdu ma clé privée.
    • Créez une instance et téléchargez les nouvelles clés publiques et privées.
    • Définissez un nouvel ensemble de clés publique et privée. Créer une instance.

Connexion SSH refusée à l'aide de 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. Les clés peuvent ensuite ê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 à votre 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é ou modes incorrects pour l'annuaire"

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 de base peut varier en fonction du système d'exploitation. Par exemple, le chemin du répertoire de base dans MacOS est /Users/<USERNAME>.

Définir les autorisations correctes

Si vous disposez de droits d'accès incorrects 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 basé sur un navigateur 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 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 la connexion avec SSH. Etant donné que Cloud Shell est basé sur un navigateur, il élimine tout problème de connectivité potentiel dû aux paramètres de pare-feu d'entreprise ou d'ordinateur portable. Cette section fournit des liens vers les informations relatives à l'utilisation de 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 actuel. Mettez fin à l'ancienne instance.
  • Créez un sous-réseau public dans le VCN actuel. Créez une instance dans le 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

S'il s'agit de votre première création d'instance, pour un tutoriel guidé, tenez compte des points suivants :
Conseil

S'il s'agit de votre première création d'instance, 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 un sous-réseau public et 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 d'informations sur l'exécution du workflow, reportez-vous à Démarrage rapide des fonctions de réseau virtuel.
(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 le temps aux ressources cible qui ne disposent pas d'adresses publiques. Pour plus d'informations, reportez-vous à Présentation de Bastion.

Options de dépannage d'instance et de connexion supplémentaires

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 à l'aide 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. Cela vous permet de dépanner et de configurer une instance à distance. Pour plus d'informations, reportez-vous à Dépannage des instances à l'aide des connexions à la console pour une instance.

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

Observer l'état des instances

Sur la page de détails de l'instance, vous pouvez observer les mesures associées à 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'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 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.