Risoluzione dei problemi relativi alla connessione SSH

Se non riesci a connetterti a un'istanza di computazione utilizzando SSH, esamina i seguenti messaggi di errore e suggerimenti per risolvere il problema.

Suggerimento

Se questa è la prima volta che si crea un'istanza, per un'esercitazione guidata tenere presente quanto riportato di seguito.
Suggerimento

Se si tratta della prima creazione di un'istanza, si consiglia di creare prima una rete cloud virtuale (VCN). È possibile utilizzare il workflow "Avvia procedura guidata VCN" e selezionare l'opzione "Crea VCN con connettività Internet". Il workflow crea una VCN che configura automaticamente sia una subnet pubblica che una privata insieme a tutti i gateway e le regole di instradamento necessari. Inoltre, il workflow fornisce un'opzione per configurare IPv6. Per informazioni dettagliate sull'esecuzione del flusso di lavoro, vedere: Avvio rapido della rete virtuale.

Errore SSH: connessione all'host con porta w.x.y.z 22: timeout dell'operazione

L'errore indica che SSH non può connettersi all'host all'indirizzo IP specificato. Controllare gli scenari riportati di seguito per risolvere il problema.

Assicurarsi che il sistema disponga dell'accesso a Internet

Assicurarsi che l'ambiente in esecuzione del comando SSH disponga di accesso a Internet
  • Windows: aprire una finestra del prompt dei comandi.
  • MacOS/Linux: aprire una finestra di terminale.
  • Eseguire il ping di un host noto come google.com o amazon.com.
  • Se il comando ping riesce, passare all'opzione successiva.
Ping non riuscito

L'ambiente SSH in uso potrebbe non avere accesso a Internet. Se non sei sicuro delle impostazioni del firewall delle organizzazioni per l'accesso a Internet, prova a utilizzare OCI Cloud Shell per eseguire l'accesso SSH all'istanza. Per i dettagli, vedere la sezione OCI Cloud Shell in questa pagina.

Server proxy
Se l'organizzazione utilizza server proxy per connettersi a Internet, assicurarsi che le impostazioni proxy siano corrette. Consultare la documentazione del proxy dell'organizzazione in quanto le impostazioni possono variare in base alla configurazione del proxy e al sistema operativo utilizzato.

Controllare le impostazioni OCI

Successivamente, controllare le impostazioni OCI per verificare la configurazione.

Apri dettagli istanza
  • Eseguire il login a OCI Console.
  • Apri il menu di navigazione e seleziona Computazione. In Computazione, selezionare Istanze.
  • Selezionare l'istanza di cui si è interessati. Viene visualizzata la pagina dei dettagli dell'istanza.
Controllare le impostazioni seguenti
  • Assicurarsi che l'istanza sia in esecuzione e non venga arrestata.
  • Assicurarsi che l'istanza disponga di un indirizzo IP pubblico.
    • Vedere la sezione Accesso istanza. Se viene assegnato un indirizzo IP pubblico, all'indirizzo verrà applicata l'etichetta Indirizzo IP di accesso pubblico:
    • Se la sezione Accesso all'istanza è vuota, non viene assegnato alcun indirizzo IP pubblico.
  • Se si dispone di un indirizzo pubblico, assicurarsi di utilizzare l'indirizzo IP corretto nel comando SSH.
  • Se non si dispone di un indirizzo IP pubblico, controllare la subnet VCN.
  • Se hai creato un'istanza in una subnet pubblica, ma non hai assegnato un indirizzo IP pubblico alla creazione dell'istanza, puoi comunque assegnare l'indirizzo. Vedere: Assegnazione di un IP pubblico effimero a un IP privato primario esistente.
    • Dopo aver impostato l'indirizzo IP, riavviare l'istanza e provare a utilizzare SSH per connettersi all'istanza.

L'istanza dispone di un indirizzo IP pubblico in una subnet pubblica e non è ancora possibile connettersi

Se non si conosce OCI, i passi di risoluzione dei problemi riportati di seguito sono più avanzati. Per velocizzare le operazioni, considera la possibilità di impostare una nuova VCN e una nuova istanza di computazione come descritto nei suggerimenti riportati di seguito.

Suggerimento

Se questa è la prima volta che si crea un'istanza, per un'esercitazione guidata tenere presente quanto riportato di seguito.
Suggerimento

Se si tratta della prima creazione di un'istanza, si consiglia di creare prima una rete cloud virtuale (VCN). È possibile utilizzare il workflow "Avvia procedura guidata VCN" e selezionare l'opzione "Crea VCN con connettività Internet". Il workflow crea una VCN che configura automaticamente sia una subnet pubblica che una privata insieme a tutti i gateway e le regole di instradamento necessari. Inoltre, il workflow fornisce un'opzione per configurare IPv6. Per informazioni dettagliate sull'esecuzione del flusso di lavoro, vedere: Avvio rapido della rete virtuale.
Apri dettagli istanza
  • Eseguire il login a OCI Console.
  • Apri il menu di navigazione e seleziona Computazione. In Computazione, selezionare Istanze.
  • Selezionare l'istanza di cui si è interessati. Viene visualizzata la pagina dei dettagli dell'istanza.
Esamina configurazione VCN
  • Fare clic sulla VCN assegnata a questa istanza.
  • Assicurarsi che almeno un gateway Internet sia disponibile nella risorsa gateway Internet.
    • Se non è assegnato alcun gateway Internet, passare alla sezione successiva.
  • Se viene assegnato un gateway Internet, assicurarsi che alla subnet pubblica sia assegnata una regola di instradamento per il gateway.
    • Nella risorsa Sottoreti, selezionare la subnet pubblica.
    • In Informazioni subnet fare clic sul collegamento Tabella instradamento.
    • Assicurarsi che esista un instradamento statico con una destinazione 0.0.0.0/0.
    • Se manca la voce del percorso, vai alla sezione successiva.
La mia subnet pubblica non è configurata correttamente

Se la subnet pubblica non è configurata correttamente, sono disponibili due opzioni per riconfigurare la subnet.

(1) Utilizzare l'azione rapida Compute.

Dalla pagina dei dettagli dell'istanza:

  • Nell'elenco Risorse selezionare Azioni rapide.
  • Fare clic su Connetti nell'azione rapida Connetti subnet pubblica a Internet.
  • Seguire il workflow per connettere l'istanza.

(2) Creare manualmente una subnet pubblica.

  • Utilizzare il documento Scenario A: una subnet pubblica per analizzare i passi necessari per impostare e configurare una nuova subnet pubblica.
  • Creare una nuova istanza di computazione nella nuova subnet pubblica.
Controlla liste di sicurezza

Se i problemi persistono, assicurarsi che le liste di sicurezza consentano il traffico sulla porta 22. Per informazioni dettagliate, vedere Elenchi di sicurezza.

Risoluzione dei problemi avanzata

Se si è utenti avanzati, è possibile utilizzare Analyzer percorso di rete per risolvere ulteriormente la connessione di rete. Per informazioni dettagliate, vedere Analizzatore del percorso di rete.

SSH: connessione all'host con porta w.x.y.z 22: connessione rifiutata

Questo messaggio di errore è causato dal fatto che un host sta ascoltando l'indirizzo di destinazione, ma non è possibile connettersi alla porta 22.

Utilizzare Netcat(nc) per verificare che SSH sia in esecuzione

Linux o MacOS

In una finestra di terminale, eseguire il comando seguente:

nc <public ip> 22
  • Se il comando restituisce un messaggio simile al seguente: SSH-2.0-OpenSSH_9.4

    Connessione all'istanza riuscita e SSH verificato in esecuzione. Controllare l'indirizzo IP nel comando SSH, assicurarsi che sia corretto.

  • Se il comando non restituisce nulla:

    • Controllare l'indirizzo IP pubblico nella pagina dei dettagli dell'istanza per assicurarsi di utilizzare l'indirizzo corretto.
    • Controllare l'indirizzo IP utilizzato nel comando, assicurarsi che sia corretto.

    In caso contrario, passare alla sezione successiva.

Finestre

In una finestra PowerShell, eseguire il comando seguente:

tnc <public ip> -p 22
  • Se il comando restituisce un messaggio simile al seguente:

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

    Connessione all'istanza riuscita e SSH verificato in esecuzione. Controllare l'indirizzo IP nel comando SSH, assicurarsi che sia corretto.

  • Se viene restituito il comando: WARNING: TCP connect to (<public ip>) failed
    • Controllare l'indirizzo IP pubblico nella pagina dei dettagli dell'istanza per assicurarsi di utilizzare l'indirizzo corretto.
    • Controllare l'indirizzo IP utilizzato nel comando, assicurarsi che sia corretto.

    Altrimenti, continuare a eseguire la risoluzione dei problemi nella sezione successiva.

SSH non in esecuzione

  • Verificare che l'istanza si trovi in una subnet pubblica.
  • Assicurarsi che le liste di sicurezza siano configurate per consentire le connessioni alla porta 22. Per informazioni dettagliate, vedere Elenchi di sicurezza.
  • Riavviare l'istanza per riavviare il daemon SSH.
  • Avanzate: se si utilizza un'immagine personalizzata e è necessario avviare o installare il servizio SSH, utilizzare la console seriale per connettersi all'istanza.

<user-name>@w.x.y.z: autorizzazione negata (publickey, gssapi-keyex, gssapi-with-mic)

Questo messaggio di errore indica che SSH si sta connettendo all'host del servizio SSH, ma si è verificato un problema con il comando SSH.

Controllare i seguenti problemi con il comando SSH

  • Controllare due volte tutte le opzioni della riga di comando per SSH. Qualsiasi opzione errata potrebbe causare questo messaggio di errore.
    • Di seguito è riportato un esempio di comando SSH formattato correttamente per la connessione a Oracle Linux.
      ssh -i <my-private-key-file> opc@x.x.x.x
  • Assicurarsi di utilizzare il nome utente corretto per l'istanza:
    • Per Oracle Linux o altro Red Hat compatibile OSes, utilizzare opc.
    • Per Ubuntu Linux, utilizzare ubuntu.
  • Assicurarsi di utilizzare la chiave privata corretta. Se si utilizza un file di chiavi private errato, verrà visualizzato questo messaggio di errore.
    • Assicurarsi di trovarsi nella directory contenente la chiave.
    • In alternativa, assicurarsi che il percorso della chiave privata sia corretto.
  • Ho perso la mia chiave privata.
    • Creare una nuova istanza e scaricare le nuove chiavi pubbliche e private.
    • Crea un nuovo set di chiavi pubbliche e private. Creare una nuova istanza.

Login SSH negato mediante i file di chiavi PuTTYgen: "Autorizzazione negata (publickey, gssapi-keyex, gssapi-with-mic)"

Ciò si verifica perché le istanze Linux supportano le chiavi SSH generate da OpenSSH e le chiavi SSH generate da PuTTYgen utilizzano un formato diverso.

Rendi corrispondenti i formati di chiave SSH

Se si utilizzano chiavi .ppk generate con PuTTYgen per eseguire il login a un'istanza Linux utilizzando il comando SSH OpenSSH, la connessione non riesce. Ad esempio:

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

Questo errore si verifica perché le istanze Linux supportano le chiavi SSH generate da OpenSSH e le chiavi SSH generate da PuTTYgen utilizzano un formato diverso. Per risolvere questo problema, utilizzare PuTTYgen per convertire le chiavi in formato chiave OpenSSH. Quindi, le chiavi possono essere utilizzate con il comando SSH per eseguire il login a un'istanza Linux.

  1. Se non si dispone di PuTTYgen, scaricarlo da https://www.puttygen.com/ e installarlo.
  2. Aprire PuTTYgen.
  3. Fare clic su File, quindi su Carica chiave privata.
  4. Andare al file di chiavi private PuTTY (.ppk), quindi fare clic su Apri.
  5. (Opzionale) Immettere una passphrase chiave.
  6. Fare clic su Conversioni, quindi su Esporta chiave OpenSSH.

    Se non è stata utilizzata la passphrase, fare clic su in PuTTYgen Avvertenza per continuare.

  7. Nella finestra Salva chiave privata come: immettere un nome di file per la chiave convertita, quindi fare clic su Salva.

È ora possibile utilizzare la chiave convertita per eseguire il login all'istanza Linux.

SSH non riesce con errore: "Autenticazione rifiutata: proprietà o modalità errate per la directory "

Questo errore si verifica perché le autorizzazioni errate sono impostate nella directory /home/<USERNAME> o nel file .ssh/authorized_keys.

Nota

I percorsi delle directory home di esempio in questo suggerimento per la risoluzione dei problemi utilizzano Oracle Linux. Il percorso di casa può differire in base al sistema operativo. Ad esempio, il percorso della home in MacOS è /Users/<USERNAME>.

Impostare le autorizzazioni corrette

Se si dispone di autorizzazioni errate impostate sulla directory /home/<USERNAME> o sul file .ssh/authorized_keys, la connessione a un'istanza Linux tramite SSH può non riuscire.

Ad esempio:

login as: <username>
Server refused our key

Se si esaminano i file di log /var/log/secure nell'istanza Linux, viene visualizzato il motivo dell'errore:

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

Per correggere l'errore, impostare le autorizzazioni per la directory home o il file .ssh/authorized_keys, utilizzare il comando chmod:

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

Uso di Cloud Shell per connettersi a un'istanza OCI

OCI Cloud Shell è un terminale basato su browser Web accessibile dalla console OCI. Cloud Shell è gratuita da utilizzare (entro i limiti di tenancy mensili) e fornisce l'accesso a una shell Linux, con un'interfaccia della riga di comando OCI preautenticata, un'installazione Ansible preautenticata e altri strumenti utili.

Se si verificano problemi di connettività con l'istanza, Cloud Shell è un'opzione efficace per la connessione a SSH. Poiché Cloud Shell è basato su browser, elimina qualsiasi potenziale problema di connettività dovuto alle impostazioni del laptop o del firewall aziendale. In questa sezione vengono fornite informazioni sulle modalità di utilizzo di Cloud Shell.

Uso di una subnet privata

Se l'istanza di computazione si trova in una subnet privata, in genere esistono due scenari.

(1) L'istanza si trova in una subnet privata ma deve trovarsi in una subnet pubblica

Per avere l'istanza in una subnet pubblica, hai le seguenti opzioni.

  • Creare una nuova istanza in una subnet pubblica nella VCN corrente. Terminare l'istanza precedente.
  • Creare una nuova subnet pubblica nella VCN corrente. Creare una nuova istanza nella nuova subnet pubblica. Terminare l'istanza precedente.
  • Creare una nuova VCN con una subnet pubblica, quindi creare una nuova istanza nella subnet pubblica. Terminare l'istanza precedente.
Suggerimento

Se questa è la prima volta che si crea un'istanza, per un'esercitazione guidata tenere presente quanto riportato di seguito.
Suggerimento

Se si tratta della prima creazione di un'istanza, si consiglia di creare prima una rete cloud virtuale (VCN). È possibile utilizzare il workflow "Avvia procedura guidata VCN" e selezionare l'opzione "Crea VCN con connettività Internet". Il workflow crea una VCN che configura automaticamente sia una subnet pubblica che una privata insieme a tutti i gateway e le regole di instradamento necessari. Inoltre, il workflow fornisce un'opzione per configurare IPv6. Per informazioni dettagliate sull'esecuzione del flusso di lavoro, vedere: Avvio rapido della rete virtuale.
(2) L'istanza è intenzionalmente su una subnet privata

Quando l'istanza di computazione si trova in una subnet privata, puoi connetterla utilizzando:

Opzioni aggiuntive per la risoluzione dei problemi di connessione e istanza

L'elemento attivo di questa pagina sta utilizzando il comando SSH per connettersi a un'istanza. Di seguito sono riportati altri strumenti disponibili per risolvere i problemi relativi alle istanze di computazione.

Risoluzione dei problemi con la console seriale

Utilizzando una connessione a OCI Console, puoi utilizzare la console seriale dell'istanza per connettersi all'istanza. Ciò consente di risolvere e configurare in remoto i problemi di un'istanza. Per ulteriori informazioni, vedere Risoluzione dei problemi delle istanze mediante la connessione alla console delle istanze.

Dalla console seriale, è possibile eseguire i task amministrativi descritti di seguito.

Osserva stato istanza

Nella pagina dei dettagli dell'istanza è possibile osservare le metriche correlate all'istanza, incluso lo stato dell'istanza. La metrica oci_compute_instance_health consente di monitorare se un'istanza VM non risponde. Compute invia una richiesta ARP (Address Resolution Protocol) alla scheda VNIC (Virtual Network Interface Card) dell'istanza. Se il ping ARP non riesce, la metrica indica che l'istanza non risponde.

Per utilizzare la metrica, selezionare oci_compute_instance_health dal controllo Spazio di nomi metrica nella pagina dei dettagli. Per ulteriori informazioni, vedere: Metriche dello stato dell'istanza di computazione.

Altre sezioni di risoluzione dei problemi di computazione

Oltre a SSH, sono disponibili anche i seguenti argomenti per la risoluzione dei problemi.