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.
Se questa è la prima volta che si crea un'istanza, per un'esercitazione guidata tenere presente quanto riportato di seguito.
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 ti trovi in una subnet privata, non puoi connetterti alla tua istanza da Internet. Vedere la sezione Utilizzo di una subnet privata.
- 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.
Se questa è la prima volta che si crea un'istanza, per un'esercitazione guidata tenere presente quanto riportato di seguito.
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.4Connessione 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 : TrueConnessione 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.
- Se l'istanza si trova in una subnet privata, non puoi connetterti direttamente all'istanza. Vedere la sezione Utilizzo di una subnet privata.
- 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
- Di seguito è riportato un esempio di comando SSH formattato correttamente per la connessione a Oracle Linux.
- 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.
- Per Oracle Linux o altro Red Hat compatibile OSes, utilizzare
- 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.
- Se non si dispone di PuTTYgen, scaricarlo da https://www.puttygen.com/ e installarlo.
- Aprire PuTTYgen.
- Fare clic su File, quindi su Carica chiave privata.
- Andare al file di chiavi private PuTTY (.ppk), quindi fare clic su Apri.
- (Opzionale) Immettere una passphrase chiave.
- Fare clic su Conversioni, quindi su Esporta chiave OpenSSH.
Se non è stata utilizzata la passphrase, fare clic su Sì in PuTTYgen Avvertenza per continuare.
- 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.
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.
-
Per informazioni su Cloud Shell, vedere Cloud Shell.
-
Per informazioni su come accedere a Cloud Shell, vedere Uso di Cloud Shell.
- Per informazioni su come connettere una sessione Cloud Shell a una rete privata, vedere Cloud Shell Private Networking.
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:
- Cloud Shell: per i dettagli, vedere la sezione OCI Cloud Shell in questa pagina.
- Bastion fornisce un accesso limitato e limitato nel tempo alle risorse di destinazione che non dispongono di endpoint pubblici. Per ulteriori dettagli, vedere Panoramica delle bastion.
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.
- Interrompere il processo di boot in boot in modalità di manutenzione.
- In modalità manutenzione, aggiungere o reimpostare la chiave SSH per l'utente
opc.
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.