it-swarm.dev

AWS - Disconnected: nessun metodo di autenticazione supportato disponibile (server inviato: publickey)

SSH al mio server AWS è appena stato sostituito da PuTTY e Filezilla. Mi sto sforzando di fare in modo che questo post sia un elenco completo di risoluzione dei problemi, quindi se condividi link ad altre pagine di overflow dello stack, li modificherò nella domanda.

Disconnected : No supported authentication methods available (server sent :publickey)


L'errore è familiare da quando ho impostato la connessione quasi un anno fa. Se configuri AWS SSH per la prima volta, questi risolvono i problemi più comuni:

Tuttavia, l'unica cosa che potrei pensare potrebbe avere un impatto su un sistema precedentemente funzionante:

  • IP sbagliato: Il riavvio di un'istanza AWS (o la creazione di un'immagine) non è garantito per mantenere lo stesso indirizzo IP. Questo dovrebbe ovviamente essere aggiornato in PuTTY. 

Quali altre possibilità ci sono? 

La soluzione a questo (per il post accettato di seguito) è che per AWS EC2 tutti e 3 di questi devono disporre di autorizzazioni appropriate (777 not ok per nessuno di questi). Ecco un esempio che funziona:

/home/ec2-user/ - 700
/home/ec2-user/.ssh/ - 600
/home/ec2-user/.ssh/authorized_keys - 600

/ var/log/secure ti dirà quale dei due genera un errore, consulta questo tutorial video per ottenere l'accesso se sei completamente bloccato: http://d2930476l2fsmh.cloudfront.net/LostKeypairRecoveryOfLinuxInstance.mp4

43
AvadData

Per me questo errore è apparso immediatamente dopo aver cambiato la directory home dell'utente 

Sudo usermod -d var/www/html username

Può anche accadere a causa della mancanza dell'autorizzazione appropriata per il file authorized_key in ~/.ssh. Assicurati che il permesso di questo file sia 0600 e che il permesso di ~/.ssh sia 700.

7
Iman Sedighi

C'è un'altra causa che potrebbe avere un impatto su un sistema precedentemente funzionante. Ho ricreato le mie istanze (usando OpsWorks di AWS) per usare Amazon Linux invece di Ubuntu e ho ricevuto questo errore dopo averlo fatto. Passare a utilizzare "ec2-user" come username invece di "ubuntu" ha risolto il problema per me.

12
Owen

Riceverai anche "Disconnected: Nessun metodo di autenticazione supportato disponibile (server inviato: publickey)" quando hai un utente Linux corretto ma non hai creato il file .ssh/authorized_keys e hai salvato la chiave pubblica come indicato in Managing User Account sulla tua istanza Linux

12
rodolk

PuTTY non supporta nativamente il formato della chiave privata (.pem) generato da Amazon EC2. PuTTY ha uno strumento chiamato PuTTYgen, che può convertire le chiavi nel formato PuTTY richiesto (.ppk). Devi convertire la tua chiave privata in questo formato (.ppk) prima di connetterti alla tua istanza usando PuTTY. 

I passaggi su come eseguire questo sono descritti qui: https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/PuTTY.html

Questo ha risolto il problema.

10
René Winkler

La risposta completa è qui: https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/PuTTY.html

Il tuo problema può essere correlato a login non corretto che varia in base alle AMI . Usa i seguenti accessi alle seguenti AMI:

  • ubuntu o root su AMI di Ubuntu
  • ec2-user su AMI Amazon Linux
  • centos su Centos AMI
  • debian o root su AMI Debian
  • ec2-user o Fedora su Fedora
  • ec2-user o root su: RHEL AMI, SUSE AMI, altri.

Se stai usando il SO:

  • Windows: ottieni la chiave PEM dal sito Web AWS e genera file PPK utilizzando PuttyGen. Quindi utilizzare PuTTY per utilizzare il PPK (selezionarlo utilizzando la colonna di sinistra: Connessione-> SSH-> Autenticazione: chiave privata per l'autorizzazione)
  • Linux - run: ssh -i your-ssh-key.pem [email protected]

In bocca al lupo.

8
Witold Kaczurba

Ho avuto lo stesso problema, per sbaglio accidentale. Lo condividerò qui, nel caso qualcuno abbia commesso lo stesso errore.

Passaggi di base, come descritto da altri.

  1. Scarica PuTTY e puttygen, o il pacchetto PuTTY e installalo.
  2. Ottieni il file .pem dall'istanza di AWS EC2.
  3. Usa puttygen per convertire il file .pem in modo che tu abbia una chiave privata --- errore è successo qui. Ho scelto la scheda "Conversioni" da PuttyGen e ho caricato il mio file .pem. Dopo aver caricato il file pem, qui NON premere "Genera", invece direttamente "Salva chiave privata". Questa è la chiave che ti serve. Se fai clic su Genera, avrai una coppia di chiavi totalmente diversa.
  4. In PuTTY, utilizzare [email protected] e caricare la chiave privata su SSH/Auth

In bocca al lupo!

6
Tony Xu

nella maggior parte dei casi, non ho ricevuto alcun errore di metodo di autenticazione quando ho usato il nome utente sbagliato per l'accesso. Ma trovo qualcos'altro se continui a lottare con il problema di connessione e hai provato tutte le opzioni sopra.

Ho creato un paio di Linux VM e provo a riprodurre questo problema di connessione, una cosa che ho trovato è, quando AWS ti ha chiesto di nominare la tua coppia di chiavi, NON utilizzare lo spazio vuoto ("") e il punto (".") Nella chiave nome di coppia, persino AWS ti consente effettivamente di farlo.

ex. quando ho chiamato la coppia di chiavi come "AWS.FREE.LINUX", la connessione deve essere sempre rifiutata. Quando ho chiamato "AWS_FREE_LINUX", tutto funziona correttamente.

Spero che questo aiuti un po '.

2
Michael Zhang

Ho avuto lo stesso problema, ho usato DNS pubblico invece di IP pubblico . Si è risolto ora.

0
user3966432

Per quanto mi riguarda, ho dovuto dire a FileZilla dove erano le chiavi private:

  1. Seleziona Modifica> Impostazioni dal menu principale
  2. Nella finestra di dialogo Impostazioni, vai su Connessione> SFTP
  3. Fai clic sul pulsante "Aggiungi file chiave ..."
  4. Passare ae selezionare i file PEM desiderati
0
Rob Stoecklein

Sto usando OpsWorks e volevo registrare una nuova istanza Linux esistente dalla mia macchina Windows su AWS Cli. 

Il problema di Frist era che dovevo usare il mio file .pkk generato da PuTTY .

Il secondo problema era che avevo bisogno di quote il percorso assoluto di quel file .pkk come quello:

aws opsworks register --infrastructure-class ec2 --ssh-username ec2-user --ssh-private-key "C:\key.ppk"

0

In base a più istanze, se il file chiave e il nome utente sono corretti, ciò sembra verificarsi quando si modificano determinate autorizzazioni di directory associate all'utente root.

0
Karan Modi

Un problema simile è successo con me oggi. Ho anche cercato molto su questo. Nessun aiuto. Ho appena apportato due modifiche e funziona correttamente.

  1. Ho visitato Documentazione Amazon dove descriviamo o Verifica che ci sia una regola che permetta il traffico dal tuo computer alla porta 22 (SSH) e se non presente, creala e modifica "Gruppo Sicurezza" e aggiungi "SSH" al mio IP. Questo aiuterà.
  2. Nel mio caso, nel profilo PuTTY, devo nuovamente autorizzare con il file .ppk. Non so perché lo chieda di nuovo, senza modifiche apportate.

Spero ti possa aiutare.

0
Asharam Seervi

Nel mio caso il problema era che il file ppk è stato inserito in% USERPROFILE%\Download anziché% USERPROFILE% .ssh. 

Dopo aver spostato il file, il problema è scomparso.

0
avp