Perché ricevo il messaggio di errore Server refused our key" quando provo a connettermi alla mia istanza EC2 tramite SSH?
Quando mi connetto alla mia istanza Amazon Elastic Compute Cloud (Amazon EC2) tramite SSH, ricevo l'errore "Server refused our key".
Risoluzione
Il server SSH (sshd) potrebbe rifiutare una chiave SSH privata per uno dei seguenti motivi:
- Hai utilizzato il file di chiave privata errato quando ti sei connesso all'istanza Amazon EC2. Per risolvere il problema, consulta Perché quando mi connetto alla mia istanza Linux Amazon Elastic Compute Cloud (Amazon EC2) si verifica l’errore “imported-openssh-key” o “Putty Fatal Error”?
- Qualcuno ha modificato le impostazioni del server SSH in /etc/ssh/sshd_config. Per risolvere il problema, consulta Come posso usare SSH per accedere alla mia istanza EC2 dopo aver modificato il file sshd_config dell'istanza?
- Il sistema operativo non è riuscito a montare le home directory /etc/fstab. Per risolvere il problema, consulta Perché la mia istanza Linux EC2 entra in modalità di emergenza quando cerco di avviarla?
- Hai utilizzato il nome utente errato per l'Amazon Machine Image (AMI) quando ti sei connesso all'istanza Amazon EC2. Per un elenco dei nomi utente validi, consulta Errore: Server refused our key_ o _No supported authentication methods available.
- Qualcuno ha eliminato l'utente dal server. Per risolvere il problema, aggiungi nuovamente l'utente al server come nuovo utente.
Potresti anche ricevere il messaggio di errore Server refused our key se l'istanza ha problemi di autorizzazione o manca una directory. Per verificare le autorizzazioni e le directory dell'istanza, utilizza uno dei seguenti metodi.
Utilizza la Console seriale EC2
Se hai attivato la Console seriale EC2 per Linux, puoi utilizzarla per risolvere i problemi relativi ai tipi di istanze basate su Nitro supportati.
Utilizza Systems Manager per accedere all'istanza e verificare le autorizzazioni
Prerequisito: installa l'Agente AWS Systems Manager (Agente SSM). Inoltre, assicurati che la configurazione rispetti i prerequisiti per Gestione sessione, una funzionalità di AWS Systems Manager.
Per risolvere i problemi dell'istanza utilizzando Gestione sessione, completa i seguenti passaggi:
-
Apri la console Systems Manager.
-
Per assicurarti che i file nella home directory dispongano delle autorizzazioni corrette, esegui questo comando:
stat /home/ec2-user/ ls -ld /home # Should show drwxr-xr-x (755) ls -ld /home/ec2-user # Should show drwx------ (700) ls -ld /home/ec2-user/.ssh # Should show drwx------ (700) ls -l /home/ec2-user/.ssh/authorized_keys # Should show -rw------- (600)Nota: sostituisci ec2-user con il nome utente corretto per la tua AMI.
Nell'output, controlla Access per assicurarti che la configurazione utilizzi le seguenti autorizzazioni:
La home directory /home di Linux deve avere le autorizzazioni 0755/drwxr-xr-x.
La home directory dell'utente /home/ec2-user/ deve avere le autorizzazioni 0700/drwx------.
La directory .ssh /home/ec2-user/.ssh deve avere le autorizzazioni 0700/drwx------.
Il file authorized_keys /home/ec2-user/.ssh/authorized_keys deve avere le autorizzazioni 0600/-rw-------.
Esempio di output:File: '/home/ec2-user/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 10301h/66305d Inode: 18322 Links: 3 Access: (0700/drwx------) Uid: ( 500/ec2-user) Gid: ( 500/ec2-user) -
Per aggiornare le autorizzazioni della configurazione, esegui questi comandi:
sudo chown root:root /home$ sudo chmod 755 /home$ sudo chown ec2-user:ec2-user /home/ec2-user -R sudo chmod 700 /home/ec2-user /home/ec2-user/.ssh sudo chmod 600 /home/ec2-user/.ssh/authorized_keysNota: sostituisci ec2-user con il nome utente corretto per la tua AMI.
Esegui il runbook AWSSupport-TroubleshootSSH
Per correggere automaticamente i problemi che causano errori, esegui AWSSupport-TroubleshootSSH. Il runbook installa lo strumento Amazon EC2Rescue sull'istanza, quindi identifica e corregge i problemi che causano errori di connessione remota durante SSH. Per ulteriori informazioni, consulta Ottengo errori durante il tentativo di connettermi alla mia istanza EC2 tramite SSH. Come posso utilizzare il flusso di lavoro di automazione AWSSupport-TroubleshootSSH per risolvere i problemi di connessione SSH?
Utilizza i dati utente per correggere le autorizzazioni dell'istanza
Importante: prima di arrestare e avviare l'istanza, intraprendi le seguenti azioni:
- Crea un backup del volume Amazon Elastic Block Store (Amazon EBS)..
Nota: se l'istanza è supportata da un archivio dell'istanza o ha volumi di archivio dell'istanza contenenti dati, Amazon EC2 elimina i dati quando arresti l'istanza. Non puoi modificare la chiave SSH con i dati utente se il dispositivo principale dell'istanza è un volume di archivio dell'istanza. - Rimuovi temporaneamente l'istanza dal relativo gruppo Amazon EC2 Auto Scaling quando completi i passaggi di risoluzione.
Nota: se arresti un'istanza che si trova in un gruppo EC2 Auto Scaling, potresti terminare l'istanza in base alle impostazioni di protezione dalla riduzione orizzontale. Le istanze avviate con Amazon EMR, AWS CloudFormation o AWS Elastic Beanstalk potrebbero far parte di un gruppo Auto Scaling. - Imposta il comportamento di chiusura dell'istanza su Arresta per assicurarti che le istanze non terminino quando le arresti.
- Installa e configura cloud-init. Per ulteriori informazioni, consulta Configure SSH and SSH keys (Configurazione di SSH e delle chiavi SSH) sul sito web di Cloud-init.
Importante: gli aggiornamenti ai dati utente dell'istanza influiscono su tutte le distribuzioni che supportano i comandi cloud-init.
Nota: quando arresti e avvii un'istanza, l'indirizzo IP pubblico dell'istanza cambia. È consigliabile utilizzare un indirizzo IP elastico per indirizzare il traffico esterno all'istanza anziché un indirizzo IP pubblico. Se utilizzi Amazon Route 53, potresti dover aggiornare i record DNS di Route 53 quando l'IP pubblico cambia.
Per risolvere i problemi relativi alle autorizzazioni utilizzando i dati utente, completa i seguenti passaggi:
-
Apri la console Amazon EC2.
-
Seleziona Istanze dal pannello di navigazione, quindi seleziona l'istanza.
-
Scegli Stato dell’istanza, quindi scegli Arresta istanza.
Nota: se non puoi selezionare Arresta istanza, ciò significa che l'istanza è già stata arrestata o che il suo dispositivo principale è un volume di archivio dell'istanza. -
Scegli Operazioni, quindi scegli Impostazioni dell'istanza.
-
Scegli Modifica dati utente, quindi inserisci il seguente comando:
Content-Type: multipart/mixed; boundary="//"MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: - [scripts-user, always] --//Content-Type: text/x-shellscript; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="userdata.txt" #!/bin/bash chown root:root /home chmod 755 /home chown ec2-user:ec2-user /home/ec2-user -R chmod 700 /home/ec2-user /home/ec2-user/.ssh chmod 600 /home/ec2-user/.ssh/authorized_keys --//Nota: sostituisci ec2-user con il nome utente corretto per la tua AMI. Non aggiungere altri spazi quando inserisci il comando precedente.
-
Scegli Salva.
-
Avvia l'istanza, quindi utilizza SSH per connetterti all'istanza.
Per impostazione predefinita, il comando con dati utente viene eseguito una volta per istanza. I passaggi precedenti modificano il comportamento predefinito per aggiungere la chiave pubblica a ogni riavvio, arresto o avvio dell'istanza. Per ripristinare il comportamento predefinito, rimuovi i comandi con dati utente personalizzati. È consigliabile consentire l'esecuzione dei dati utente dopo il primo avvio dell'istanza. Puoi utilizzare l'API ModifyInstanceAttribute per modificare i dati utente di un'istanza. Per limitare l'accesso all'API ModifyInstanceAttribute, utilizza policy AWS Identity and Access Management (AWS IAM).
Informazioni correlate
Connect to your Linux instance using PuTTY
Amazon EC2 key pairs and Amazon EC2 instances
In che modo posso risolvere i problemi di connessione alla mia istanza Linux Amazon EC2 tramite SSH?
- Argomenti
- End User ComputingCompute
- Lingua
- Italiano
Video correlati

