Risolvere i problemi di accesso
Questa pagina fornisce suggerimenti per la risoluzione dei problemi di accesso a Bare Metal Solution.
Controlla se la tua domanda o il tuo problema è già stato trattato nella pagina Problemi noti e limitazioni.
Impossibile connettere il client SSH
Se il client SSH non riesce a connettersi a un server, potresti visualizzare uno dei seguenti errori:
connection timeout
oconnection refused
: il client SSH non riesce a connettersi.Permission denied (publickey)
: l'autenticazione del client SSH non riesce.
Per diagnosticare le connessioni SSH non riuscite:
Verifica la connettività.
Assicurati che l'host sia raggiungibile e che la porta SSH (22) sia aperta utilizzando i comandi
ping
,traceroute
enc
.ping SERVER_NAME
traceroute SERVER_NAME
echo "" | nc SERVER_NAME 22
Se il problema persiste, il problema potrebbe riguardare il livello di rete e non l'SSH.
Esamina l'output di debug lato client.
Attiva la modalità dettagliata del protocollo SSH.
ssh -v SERVER_NAME -i ~/.ssh/id_ecdsa
Il comando stampa l'output di debug che mostra gli eventi chiave del protocollo SSH lato client.
L'esempio di output seguente mostra che il client ha inviato la propria chiave, ma il server l'ha rifiutata. Il server ha chiesto di continuare con un'altra chiave pubblica, ma il client non ha altre chiavi da offrire.
.. .. .. debug1: Server host key: ecdsa-sha2-nistp256 SHA256:V9cRYdqcAJv+RPfN+oofNTVdUxs6VlocP4uMWOxeGKI debug1: Host 'bms-server' is known and matches the ECDSA host key. debug1: Found key in /root/.ssh/known_hosts:1 debug1: rekey after 134217728 blocks debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: rekey after 134217728 blocks debug1: SSH2_MSG_EXT_INFO received debug1: kex_input_ext_info: server-sig-algs=
debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering ECDSA public key: /root/.ssh/id_ecdsa debug1: Authentications that can continue: publickey debug1: No more authentication methods to try. Permission denied (publickey). Se l'output dettagliato di SSH non indica chiaramente la causa del messaggio di errore, esegui il comando
strace
:strace ssh SERVER_NAME -i ~/.ssh/id_ecdsa > strace-ssh.txt 2>&1
Esamina l'output di
strace
per verificare la presenza di errori correlati al problema di base.In alcuni casi, l'output di debug lato client non è sufficiente per identificare il problema. Potrebbe anche essere necessario eseguire il monitoraggio lato server per trovare l'errore. Finché non riesci ad accedere al server tramite SSH, utilizza la console seriale interattiva per eseguire i passaggi successivi.
Esamina l'output di debug lato server.
Trova le impostazioni SSH correnti.
grep -v "^#" /etc/ssh/sshd_config | grep -v "^$"
Per ottenere informazioni dettagliate su SSH, imposta i seguenti parametri nel file
/etc/ssh/sshd_config
.SyslogFacility AUTH LogLevel DEBUG
Per applicare le modifiche, riavvia il servizio.
service sshd restart
Sul lato client, esegui il comando
ssh
ed estrai i messaggisshd
dai log:grep sshd /var/log/messages
In alternativa, puoi esportare tutti i messaggi pertinenti per il periodo di tempo utilizzando il seguente comando:
journalctl -u sshd -S "START_TIME" -U "END_TIME" --utc
Sostituisci quanto segue:
START_TIME
: l'ora di inizio del periodo di tempo in formatoyyyy-mm-dd hh:mm:ss
.END_TIME
: l'ora di fine del periodo di tempo nel formatoyyyy-mm-dd hh:mm:ss
.
Esempio:
journalctl -u sshd -S "2023-04-25 18:38:00" -U "2023-04-25 18:40:00" --utc
Per risolvere questi problemi, tieni presente i seguenti passaggi:
Verifica se il file della chiave client è impostato con autorizzazioni di sola lettura (flag
400
). In caso contrario, il client SSH non lo accetta.Per impostare il flag di sola lettura per la chiave privata in uso, esegui il seguente comando:
chmod 400 ~/.ssh/id_ed25519
Sul lato server, controlla se la chiave pubblica del client è specificata nel file di configurazione locale dell'utente corrispondente (
~/.ssh/authorized_keys
).In alcuni casi, il problema potrebbe essere correlato alla versione del protocollo SSH o all'algoritmo SSH. Le uscite di debug lato server e lato client potrebbero indicare un problema di questo tipo. In genere, le pagine
man
perssh
esshd_config
forniscono i dettagli per la gestione della configurazione necessaria. Ad esempio, per trovare gli algoritmi di scambio di chiavi o i metodi di crittografia supportati, utilizza i seguenti comandi:# Find key exchange algorithms ssh -Q kex # Find the symmetric encryption ciphers ssh -Q cipher