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 les suggestions de dépannage suivants pour résoudre le problème.
Si vous créez une instance pour la première fois, pour un tutoriel guidé, envisagez l'une des options suivantes :
S'il s'agit de 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 "Lancer l'assistant de 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 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 à l'hôte w.x.y.z port 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.
Assurez-vous que le système dispose d'un accès Internet
- Assurez-vous que 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 de ping
-
Il est possible que votre environnement SSH n'ait 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 SSH vers l'instance. Pour plus de détails, voir la section OCI Cloud Shell dans cette page.
- Serveurs mandataires
- Si votre organisation utilise des serveurs mandataires pour se connecter à Internet, assurez-vous que vos paramètres de mandataire sont corrects. Consultez la documentation du mandataire de votre organisation car les paramètres peuvent varier en fonction de la configuration du mandataire et du système d'exploitation utilisé.
Vérifiez les paramètres OCI
Ensuite, vérifiez les paramètres OCI pour vérifier votre configuration.
- Ouvrir les détails de l'instance
-
- Log dans 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 qu'elle 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 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 avez une adresse publique, assurez-vous d'utiliser 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 êtes sur un sous-réseau privé, vous ne pouvez pas vous connecter à votre instance à partir d'Internet. Voir la section Utilisation d'un sous-réseau privé.
- Si vous avez créé une instance dans 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 dans un sous-réseau public et je ne peux toujours pas me connecter
Si vous débutez avec 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.
Si vous créez une instance pour la première fois, pour un tutoriel guidé, envisagez l'une des options suivantes :
S'il s'agit de 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 "Lancer l'assistant de 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 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
-
- Log dans 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'avère 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 Compute.
À partir de la page des détails de l'instance :
- Dans la liste Ressources, sélectionnez Actions rapides.
- Cliquez sur Connect dans l'action rapide Connect public subnet to Internet.
- Suivez le flux de travail pour connecter votre instance.
(2) Créez manuellement un sous-réseau public.
- Utilisez le document Scénario A : Un sous-réseau public pour suivre les étapes 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 de 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. Pour plus de détails, voir Analyseur de chemin de réseau.
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 retourne un message similaire à celui-ci :
SSH-2.0-OpenSSH_9.4
Vous êtes connecté à l'instance et vérifiez que SSH 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 aucun résultat :
- Vérifiez l'adresse IP publique dans la page des détails de l'instance pour vous assurer d'utiliser 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.
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 vérifiez que SSH 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 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 l'adresse correcte.
- Vérifiez deux fois l'adresse IP utilisée dans la commande, 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 dans un sous-réseau public.
- Si l'instance se trouve dans un sous-réseau privé, vous ne pouvez pas vous connecter directement à l'instance. Voir 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. 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 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 pour la connexion à Oracle Linux.
ssh -i <my-private-key-file> opc@x.x.x.x
- Voici un exemple de commande SSH correctement formatée pour la connexion à Oracle Linux.
- Assurez-vous d'utiliser le nom d'utilisateur approprié pour l'instance :
- Pour Oracle Linux ou tout autre OSes compatible avec Red Hat, utilisez
opc
. - Pour Ubuntu Linux, utilisez
ubuntu
.
- Pour Oracle Linux ou tout autre OSes compatible avec Red Hat, utilisez
- Assurez-vous d'utiliser la clé privée appropriée. L'utilisation du mauvais fichier de clé privée 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 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 de clé PuTTYgen : "Autorisation refusée (publickey,gssapi-keyex,gssapi-with-mic)"
Cela se produit parce que les instances Linux prennent en charge les clés SSH générées par OpenSSH et que 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.
- Si vous n'avez pas PuTTYgen, téléchargez-le à partir de https://www.puttygen.com/ et installez-le.
- Ouvrez PuTTYgen.
- Cliquez sur Fichier, puis sur Charger la clé privée.
- Naviguez jusqu'au fichier de clé privée PuTTY (.ppk), puis cliquez sur Ouvrir.
- (Facultatif) Entrez une phrase secrète de clé.
- 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.
- 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 : "Authentification refusée : Propriété incorrecte ou modes pour le répertoire"
Cette erreur se produit car des autorisations incorrectes sont définies dans le répertoire /home/<USERNAME>
ou le fichier .ssh/authorized_keys
.
Les exemples de chemins de répertoire de base de ce conseil 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
de l'instance Linux, vous voyez le motif de l'erreur :
<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 à SSH. Comme Cloud Shell est basé sur un navigateur, il élimine tout problème de connectivité potentiel en raison des paramètres de l'ordinateur portable ou du pare-feu d'entreprise. Cette section vous relie aux informations sur les façons d'utiliser Cloud Shell.
-
Pour plus d'informations sur Cloud Shell, voir Cloud Shell.
-
Pour plus d'informations sur l'accès à Cloud Shell, voir Utilisation de Cloud Shell.
- Pour plus d'informations sur la connexion d'une session Cloud Shell à un réseau privé, voir Réseau privé 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 dans un sous-réseau privé, mais doit se trouver dans 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 dans le VCN courant. Mettez fin à l'ancienne instance.
- Créez un 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 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é, envisagez l'une des options suivantes :Conseil
S'il s'agit de 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 "Lancer l'assistant de 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 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 est 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 :
- Cloud Shell : Voir la section OCI Cloud Shell dans cette page pour plus de détails.
- Le hôte bastion fournit un accès restreint et limité dans le temps aux ressources cibles qui n'ont pas de point d'extrémité public. Pour plus de détails, voir Aperçu du service d'hôte bastion.
Options supplémentaires de dépannage des connexions et des instances
La cible de cette page est l'utilisation de la commande SSH pour la connexion à une instance. Voici d'autres outils disponibles pour dépanner les instances de calcul.
Résolution des problèmes 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 Dépannage des instances à partir des connexions à la console d'instance.
- Interrompez le processus de démarrage pour démarrer en mode de maintenance.
- En mode de maintenance, ajoutez ou réinitialisez la clé SSH pour l'utilisateur
opc
.
Observer l'état des instances
Dans la page des détails de l'instance, vous pouvez observer les mesures lié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. 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.