Problèmes de connexion à une session
Corrigez les problèmes qui peuvent survenir lorsque vous essayez de vous connecter à une session existante.
En général, pour dépanner les commandes SSH, ajoutez l'option verbose (-v). Par exemple :
ssh -v -i <private_key> -N -L <local_port>:<target_IP>:<port> <bastion>
N'utilisez pas les options
-vv ou -vvv.Impossible de se connecter à une session à l'aide de SSH et d'une clé publique
Lorsque vous utilisez SSH et une clé publique pour vous connecter à un SSH géré ou à une session de réacheminement de port (également appelée tunnel SSH), la connexion échoue et le message suivant s'affiche :
Permission denied (publickey)
Pour résoudre le problème, modifiez le fichier ~/.ssh/config et ajoutez les lignes suivantes :
Host *
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsaUtilisez
* pour l'hôte dans le fichier de configuration SSH pour accéder à la fois à l'hôte bastion et à l'hôte cible. Vous pouvez également ajouter host.bastion.*.oci.* et toutes les adresses IP privées de l'hôte cible au fichier de configuration SSH. Pour plus d'aide, voir Connexion à votre instance.
L'adresse IP n'est pas dans la liste d'autorisation de l'hôte bastion
Lorsque vous créez un hôte bastion, vous spécifiez la liste d'autorisation de bloc CIDR. Vous ajoutez un ou plusieurs intervalles d'adresses en notation CIDR que vous souhaitez autoriser à se connecter aux sessions hébergées par cet hôte bastion.
Si l'adresse IP de l'ordinateur local ne figure pas dans la liste d'autorisation, la commande SSH échoue avec ce message :
Enter passphrase for key 'id_rsa': <your_passphrase>
...
Connection to host.bastion.<region>.oci.oraclecloud.com closed by remote host.
Modifiez l'hôte bastion et vérifiez que l'adresse IP de la machine locale se trouve dans la liste d'autorisation de bloc CIDR. Après avoir modifié la liste d'autorisation, vous devez également en créer une nouvelle. Cette modification n'a aucune incidence sur les sessions existantes.
Le VCN ne permet pas le trafic entrant à partir de l'hôte bastion
Le réseau en nuage virtuel (VCN) et le sous-réseau dans lesquels la ressource cible a été créée doivent autoriser le trafic réseau entrant à partir de l'hôte bastion sur le port cible.
Lorsque vous essayez de vous connecter à une session SSH gérée, la connexion expire après plusieurs minutes et ce message est affiché :
Enter passphrase for key 'id_rsa': <your_passphrase>
...
kex_exchange_identification: Connection closed by remote host
Pour une session de transfert de port, la connexion SSH initiale réussit, mais toute tentative d'utilisation du tunnel SSH expire après plusieurs minutes et le même message d'erreur est affiché.
For example, to use a session to connect to port 8001 on a compute instance from a bastion with the IP address 192.168.0.99, then the subnet used to access the instance needs to allow ingress traffic from 192.168.0.99 on port 8001.
La liste de sécurité par défaut pour un sous-réseau autorise le trafic entrant vers le port SSH 22 à partir de n'importe quelle adresse IP, mais cette règle peut être modifiée ou supprimée. En outre, la liste de sécurité par défaut d'un sous-réseau n'autorise généralement pas le trafic entrant à partir d'une adresse IP vers d'autres numéros de port, par exemple :
1521: Base de données Oracle3306: Base de données MySQL3389: Protocole RDP (Remote Desktop Protocol)
Mettez à jour la liste de sécurité du sous-réseau cible et ajoutez l'adresse IP de l'hôte bastion. Voir Autorisation de l'accès au réseau à partir de l'hôte bastion.
La commande de réacheminement de port ne répond pas
Lorsque vous utilisez SSH pour vous connecter à une session de réacheminement de port (également appelée tunnel SSH), le processus ne s'arrête pas après l'entrée de la phrase secrète de la clé privée. Ce résultat est normal. Ne fermez pas le terminal.
Pour vérifier que le tunnel SSH a été créé, vous pouvez exécuter de nouveau la commande SSH avec une sortie verbose. Les messages finaux après une connexion réussie sont les suivants :
debug1: Entering interactive session.
debug1: pledge: network
Après avoir créé le tunnel SSH, utilisez une application appropriée pour vous connecter à la ressource cible à l'aide du port local spécifié dans la commande SSH : localhost:local port ou 127.0.0.1:local port.
Par exemple, pour utiliser une session de réacheminement de port vers une base de données Oracle Database, ouvrez Oracle SQL Developer et connectez-vous à localhost:1521.
Pour d'autres exemples, voir Connexion aux sessions du service d'hôte bastion.
La connexion inactive est fermée
Par défaut, le serveur SSH ferme une connexion inactive après 5 minutes. Pour empêcher la fermeture des connexions inactives, configurez le client SSH pour envoyer régulièrement des paquets vides au serveur.
Par exemple, sous Linux, créez ou modifiez le fichier ~/.ssh/config et ajoutez les lignes suivantes :
Host *
ServerAliveInterval 120
ServerAliveCountMax 3Dans cet exemple, des paquets vides sont envoyés toutes les deux minutes (120 secondes), et le client effectue au maximum trois tentatives.