Risoluzione dei problemi relativi alla connessione SSH
Se non riesci a connetterti a un'istanza di computazione tramite SSH, consulta 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 è consigliabile considerare quanto segue:
Se si tratta della prima volta che si crea 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 una subnet pubblica e privata insieme a eventuali gateway e regole di instradamento necessari. Inoltre, il workflow fornisce un'opzione per configurare IPv6. Per i dettagli sull'esecuzione del workflow, vedere: Avvio rapido del networking virtuale.
Errore SSH: connessione all'host w.x.y.z porta 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 cui viene eseguito il comando SSH disponga dell'accesso a Internet
-
- Windows: aprire una finestra del prompt dei comandi.
- MacOS/Linux: aprire una finestra di terminale.
- Ping di un host ben noto come google.com o amazon.com.
- Se il comando ping riesce, passare all'opzione successiva.
- Ping non riuscito
-
L'ambiente SSH potrebbe non disporre dell'accesso a Internet. Se non sei sicuro delle impostazioni del firewall della tua organizzazione per l'accesso a Internet, prendi in considerazione l'utilizzo di OCI Cloud Shell per l'istanza SSH. 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 proxy dell'organizzazione in quanto le impostazioni possono variare a seconda della configurazione proxy e del sistema operativo utilizzati.
Controllare le impostazioni OCI
Successivamente, controlla le impostazioni OCI per verificare la configurazione.
- Apri i dettagli dell'istanza
-
- Esegui il login a OCI Console.
- Aprire il menu di navigazione e selezionare Computazione. In Computazione, selezionare Istanze.
- Selezionare l'istanza di cui si è interessati. Viene visualizzata la pagina dei dettagli dell'istanza.
- Controllare le seguenti impostazioni
-
- Assicurarsi che l'istanza sia in esecuzione e non venga arrestata.
- Assicurarsi che l'istanza disponga di un indirizzo IP pubblico.
- Consultare la sezione Accesso all'istanza. Se viene assegnato un indirizzo IP pubblico, l'indirizzo verrà etichettato come: 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 disponi di un indirizzo IP pubblico, controlla 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 è stata creata un'istanza in una subnet pubblica, ma non è stato assegnato un indirizzo IP pubblico durante la creazione dell'istanza, è comunque possibile 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 la shell SSH per connettersi all'istanza.
L'istanza ha un indirizzo IP pubblico in una subnet pubblica e non è ancora possibile connettersi
Se non hai familiarità con OCI, i seguenti passi di risoluzione dei problemi sono più avanzati. Per velocizzare le operazioni, prova a impostare una nuova VCN e una nuova istanza di computazione come descritto nei seguenti suggerimenti.
Se questa è la prima volta che si crea un'istanza, per un'esercitazione guidata è consigliabile considerare quanto segue:
Se si tratta della prima volta che si crea 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 una subnet pubblica e privata insieme a eventuali gateway e regole di instradamento necessari. Inoltre, il workflow fornisce un'opzione per configurare IPv6. Per i dettagli sull'esecuzione del workflow, vedere: Avvio rapido del networking virtuale.
- Apri i dettagli dell'istanza
-
- Esegui il login a OCI Console.
- Aprire il menu di navigazione e selezionare Computazione. In Computazione, selezionare Istanze.
- Selezionare l'istanza di cui si è interessati. Viene visualizzata la pagina dei dettagli dell'istanza.
- Rivedere la configurazione della VCN
-
- Fare clic sulla VCN assegnata a questa istanza.
- Assicurarsi che almeno un gateway Internet sia disponibile nella risorsa Gateway Internet.
- Se non viene assegnato alcun gateway Internet, andare 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 Subnet, selezionare la subnet pubblica.
- In Informazioni sulla subnet fare clic sul collegamento Tabella di instradamento.
- Assicurarsi che sia presente un instradamento statico con una destinazione
0.0.0.0/0
. - Se manca la voce del percorso, andare alla sezione successiva.
- La mia subnet pubblica non è configurata correttamente
-
Se sembra che la subnet pubblica non sia configurata correttamente, hai due opzioni per riconfigurare la subnet.
(1) Utilizzare l'azione rapida Computazione.
Nella 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: A Public Subnet per analizzare i passi per impostare e configurare una nuova subnet pubblica.
- Crea una nuova istanza di computazione nella nuova subnet pubblica.
- Controlla liste di sicurezza
-
Se si continuano ad avere problemi, assicurarsi che le liste di sicurezza consentano il traffico sulla porta 22. Per ulteriori informazioni, vedere Elenchi di sicurezza.
- Risoluzione dei problemi avanzata
-
Se si è un utente avanzato, è possibile utilizzare Analyzer percorso di rete per risolvere ulteriormente i problemi della connessione di rete. Per ulteriori informazioni, vedere Analizzatore del percorso di rete.
SSH: connessione all'host w.x.y.z porta 22: connessione rifiutata
Questo messaggio di errore è causato dal fatto che un host è in ascolto all'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 indicato di seguito.
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 e assicurarsi che sia corretto.
Se il comando non restituisce alcun risultato:
- Controllare l'indirizzo IP pubblico nella pagina dei dettagli dell'istanza per assicurarsi di utilizzare l'indirizzo corretto.
- Controllare due volte 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 a:
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 due volte 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 due volte l'indirizzo IP utilizzato nel comando, assicurarsi che sia corretto.
In caso contrario, continuare la risoluzione dei problemi con la sezione successiva.
SSH non è in esecuzione
- Controllare 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 ulteriori informazioni, vedere Elenchi di sicurezza.
- Riavviare l'istanza per riavviare il daemon SSH.
- Avanzate: se si utilizza un'immagine personalizzata e si deve 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. Eventuali opzioni errate potrebbero 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 OSes compatibile con Red Hat, utilizzare
opc
. - Per Ubuntu Linux, utilizzare
ubuntu
.
- Per Oracle Linux o altro OSes compatibile con Red Hat, utilizzare
- Assicurarsi di utilizzare la chiave privata corretta. L'uso di un file di chiavi private errato genererà questo messaggio di errore.
- Assicurarsi di trovarsi nella directory che contiene 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.
- Creare un nuovo set di chiavi pubblica e privata. Creare una nuova istanza.
Login SSH negato utilizzando i file chiave 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 le 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 il problema, utilizzare PuTTYgen per convertire le chiavi nel formato di chiave OpenSSH. Successivamente, 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.
- Passare al file di chiavi private PuTTY (.ppk), quindi fare clic su Apri.
- (Facoltativo) Immettere una passphrase chiave.
- Fare clic su Conversioni, quindi su Esporta chiave OpenSSH.
Se non è stata utilizzata come passphrase, fare clic su Sì all'indirizzo PuTTYgen Warning per continuare.
- Nella finestra Salva chiave privata con nome: immettere un nome file per la chiave convertita, quindi fare clic su Salva.
Ora puoi utilizzare la chiave convertita per accedere alla tua istanza Linux.
SSH non riesce con errore: "Autenticazione rifiutata: proprietà o modalità errate per la directory "
Questo errore si verifica perché sono impostate autorizzazioni errate per la directory /home/<USERNAME>
o il file .ssh/authorized_keys
.
I percorsi della directory home di esempio in questo suggerimento di risoluzione dei problemi utilizzano Oracle Linux. Il percorso home può differire in base al sistema operativo. Ad esempio, il percorso della home in MacOS è
/Users/<USERNAME>
.Imposta 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 mediante SSH potrebbe 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 è gratuito da usare (entro i limiti della tenancy mensile) e offre l'accesso a una shell Linux, con un'interfaccia CLI 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 con SSH. Poiché Cloud Shell è basata su browser, elimina eventuali potenziali problemi di connettività dovuti 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 su una subnet pubblica, hai le opzioni seguenti.
- Crea una nuova istanza in una subnet pubblica nella VCN corrente. Terminare la vecchia istanza.
- Crea una nuova subnet pubblica nella VCN corrente. Crea una nuova istanza nella nuova subnet pubblica. Terminare la vecchia istanza.
- Crea una nuova VCN con una subnet pubblica, quindi crea una nuova istanza nella subnet pubblica. Terminare la vecchia istanza.
Suggerimento
Se questa è la prima volta che si crea un'istanza, per un'esercitazione guidata è consigliabile considerare quanto segue:Suggerimento
Se si tratta della prima volta che si crea 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 una subnet pubblica e privata insieme a eventuali gateway e regole di instradamento necessari. Inoltre, il workflow fornisce un'opzione per configurare IPv6. Per i dettagli sull'esecuzione del workflow, vedere: Avvio rapido del networking virtuale. - (2) L'istanza si trova intenzionalmente in una subnet privata
-
Quando l'istanza di computazione si trova in una subnet privata, è possibile connettersi utilizzando gli strumenti indicati di seguito.
- Cloud Shell: per i dettagli, vedere la sezione OCI Cloud Shell in questa pagina.
- Bastion offre accesso limitato e a tempo limitato alle risorse di destinazione che non dispongono di endpoint pubblici. Vedere la panoramica di Bastion per ulteriori dettagli.
Opzioni aggiuntive per la risoluzione dei problemi di connessione e istanza
Lo stato attivo di questa pagina è l'utilizzo del comando SSH per connettersi a un'istanza. Ecco altri strumenti disponibili per risolvere i problemi delle 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 i problemi in remoto e configurare un'istanza. Per ulteriori informazioni, vedere Risoluzione dei problemi delle istanze mediante le connessioni della console delle istanze.
- Interrompere il processo di boot per boot in modalità manutenzione.
- In modalità di manutenzione, aggiungere o reimpostare la chiave SSH per l'utente
opc
.
Osservare lo stato dell'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 di interfaccia di rete virtuale (VNIC) dell'istanza. Se il ping ARP non riesce, la metrica mostra 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, consulta: 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.