2010-02-01 13 views
23

Sono nuovo in EC2. Ho creato le mie credenziali di sicurezza da questo sito:Errore di autorizzazione durante la connessione a EC2 tramite SSH su Mac OSx

http://paulstamatiou.com/how-to-getting-started-with-amazon-ec2

Ha funzionato alla grande, ho riavviato e ora quando provo a collegarlo ottengo un prompt di login/password. (Che non ho mai impostato.) Dopo diversi tentativi ottengo questo errore:

Autorizzazione negata (chiave pubblica, gssapi-con-mic).

Cosa sto sbagliando?

+0

Help! qualche idea? –

risposta

52

due possibilità mi viene in mente, anche se sono entrambi menzionati nel link si fa riferimento:

  1. Non stai specificando il file SSH coppia di chiavi corretto o un nome utente nel comando ssh che si sta utilizzando per accedere al server:

    ssh -i [percorso completo coppia di chiavi di file] root @ [EC2 esempio nome host o indirizzo IP]

  2. non si dispone delle autorizzazioni necessarie sul file coppia di chiavi; si dovrebbe usare

    chmod 600 [file di coppia di chiavi]

per garantire che solo è possibile leggere o scrivere il file.

Provate a usare l'opzione -v con ssh per ottenere maggiori informazioni su dove esattamente non funziona, e postate qui se volete ulteriore aiuto.

[Aggiornamento]: OK, quindi questo è ciò che si dovrebbe dovuto vedere se tutto è stato impostato correttamente:

debug1: Authentications that can continue: publickey,gssapi-with-mic 
debug1: Next authentication method: publickey 
debug1: Trying private key: ec2-keypair 
debug1: read PEM private key done: type RSA 
debug1: Authentication succeeded (publickey). 

Stai usando il comando ssh dalla directory contenente il file EC2-coppia di chiavi? Se è così, prova a specificare -i ./ec2-keypair solo per eliminare i problemi di percorso. Controlla anche il file "ls -l [percorso completo per ec2-keypair]" e assicurati che i permessi siano 600 (visualizzati come rw -------). Se nessuna di queste funzioni, sospetto il contenuto del file keypair, quindi prova a ricrearlo utilizzando i passaggi del tuo collegamento.

+0

Ecco le informazioni specifiche per quanto riguarda l'errore: debug1: autenticazioni che può continuare: publickey, gssapi-with-mic debug1: Prossimo metodo di autenticazione: publickey debug1: Cercando la chiave privata: EC2-coppia di chiavi debug1: leggere PEM privato Tasto fatto: digitare RSA debug1: Autenticazioni che possono continuare: publickey, gssapi-with-mic debug1: non ci sono più metodi di autenticazione da provare. Autorizzazione negata (chiave pubblica, gssapi-con-mic). –

+0

Ho modificato la mia risposta per aggiungere ulteriori informazioni, in quanto non c'è spazio per inserirla in un nuovo commento. –

+0

L'ho controllato. Ho due keypair uno per un sito e un altro per un altro sito. Posso usare la stessa coppia di chiavi che causa problemi su un'altra istanza senza problemi. Il problema potrebbe essere con questa istanza specifica? Grazie per l'aiuto. –

14

La chiave per collegarmi era utilizzare l'utente "ec2-user" anziché root. I.e .:

ssh -i [full path to keypair file] [email protected][EC2 instance hostname or IP address] 
+1

+1 Avevo lo stesso problema fino a quando ho passato l'utente da ec2user a ec2-user come suggerito. –

+2

A seconda della distro AMI/Linux utilizzata, il nome utente corretto per la riga di comando ssh può essere root, ubuntu, ec2-user o forse altri. –

3

Sei sicuro di aver utilizzato l'istanza corretta? Mi sono imbattuto in questo problema e mi sono reso conto che qualcosa come 4 delle istanze di Ubuntu che ho provato non avevano installato i server SSH.

Per un elenco di server validi, vedere "Ottenere le immagini" a metà. Sembra che tu stia usando qualcos'altro ... il nome utente predefinito è ubuntu su queste immagini.

https://help.ubuntu.com/community/EC2StartersGuide

+0

username "ubuntu" lo ha risolto per me – samuelsaumanchan

0

Se si dispone di un file PPK che lavora su un PC, poi esportarlo come file di OpenSSH utilizzando PuTTYgen.exe per PC e l'uso che su Mac (qualsiasi macchina Unix).

mi è stato sempre lo stesso errore -

debug1: Authentications that can continue: publickey,gssapi-with-mic 
debug1: Next authentication method: publickey 
debug1: Trying private key: ec2-keypair 
debug1: read PEM private key done: type RSA 
debug1: Authentications that can continue: publickey,gssapi-with-mic 
debug1: No more authentication methods to try. 
Permission denied (publickey,gssapi-with-mic) 

Mentre stavo usando un file PPK su Windows, ho seguito i passaggi sopra descritti e Bingo!

$ ssh -i EC2-openssh-chiave root @ EC2-esempio-ip

5

Nel mio caso è perché il permesso per la mia home directory è 775, e SSH non è felice. Dovrebbe funzionare dopo l'esecuzione:

server$ chmod go-w ~/ 
server$ chmod 700 ~/.ssh 
server$ chmod 600 ~/.ssh/authorized_keys 

Ho avuto un'esperienza molto simile questo pomeriggio. Stavo installando django su EC2 e improvvisamente non posso più usare SSH nella scatola. Sono contento ho ancora avuto una connessione attiva, quindi ho modificato /etc/ssh/sshd_config impostare:

PasswordAuthentication yes 

e impostare una password per ec2-user, allora posso effettuare il login inserendo la password.

Tuttavia, dopo qualche ricerca su google ho trovato questo thread: http://ubuntuforums.org/showthread.php?t=577279. Si è scoperto che durante il mio setup di Django ho cambiato il permesso per la mia home directory, e SSH è molto severo su questo. Quindi il permesso del file deve essere impostato correttamente.

+0

"Si è scoperto che durante il mio setup di django ho cambiato il permesso per la mia home directory, e SSH è molto severo su questo." Stavo avendo lo stesso problema così dopo aver visto quel suggerimento, ho fatto un tentativo solo per il gusto e le cose hanno funzionato! ! @ # $% Perché anche la home directory deve essere 700 oltre a .ssh/è oltre me. Non è così che lo rende più sicuro. – aqn

2

sono stato in grado di effettuare il login utilizzando EC2-utente

ssh -i [percorso completo coppia di chiavi di file] EC2-user @ [esempio hostname EC2 o l'indirizzo IP]

4

Tagging alla risposta di mecca831:

ssh -v -i generato-key.pem [email protected]

[[email protected] ~] $ sudo passwd EC2-utente newpassword newpassword

.210

[[email protected] ~] $ sudo vi/etc/ssh/sshd_config Modificare il file come segue:

# To disable tunneled clear text passwords, change to no here! 
    PasswordAuthentication yes 
    #PermitEmptyPasswords no 
    # EC2 uses keys for remote access 
    #PasswordAuthentication no 

Salva

[EC2-user @ IP 11.11.11.11 ~] $ sudo servizio sshd fermare [[email protected] ~] $ sudo servizio sshd start

si dovrebbe essere in grado di uscire e sSH nel modo seguente:

ssh [email protected] 

e viene richiesta la password che non richiede più la chiave.

1

Nessuno dei precedenti mi ha aiutato, ma futting con l'utente sembrava come se avesse promesso. Per il mio config con 'ubuntu' era giusto .....

ssh -i [percorso completo coppia di chiavi di file] ubuntu @ [EC2 esempio nome host o indirizzo IP]

0

Ho avuto lo stesso problema con l'AWS Toolkit per Eclipse. Ho creato l'istanza Getting Started OK e ho aperto una shell. Tuttavia, l'utente è stato impostato su ec2-user. Ho usato il comando Open Shell As ... e ho impostato l'utente su root. Quindi ha funzionato.

1

Dopo circa mezz'ora di ricerca e tentativo di eseguire il debug di questo è stato in grado di capirlo. La mia situazione mi ha coinvolto utilizzando lo stesso file pem per due diverse istanze di ec2 e funzionava per l'una e non per l'altra.

La mia prima istanza su cui ha funzionato era lo standard aws linux ami amzn-ami-hvm-2014.03.2.x86_64-ebs. Ho semplicemente usato

ssh -i mypemfile.pem [email protected] 

e ha funzionato.

ho poi lanciato un'istanza fedora Fedora-x86_64-19-20140407-sda e provato lo stesso comando, ma continuava a:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 

Dopo aver cambiato il mio nome utente da EC2-utente a Fedora ha funzionato!

ssh -i mypemfile.pem [email protected] 
1

Si sconsiglia di impostare una password come suggeriscono altre risposte. L'uso del file chiave è più sicuro (nessuno può indovinare le tue password) e più comodo (una volta configurato un file di configurazione). Ecco una base ~/.ssh/config:

Host my-ec2-server 
    HostName 11.11.11.11 
    User ec2-user 
    IdentityFile /path/to/generated-key.pem 

Ora si può semplicemente digitare ssh my-ec2-server e sei in! E come menzionato anche in altre risposte, usa -v per ottenere informazioni extra quando la tua connessione non funziona.

2

+1

ho notato che per alcune AMI come Amazon Linux, [email protected] avrebbe funzionato. Ma per un'immagine di Ubuntu, dovevo usare invece ubuntu @. Non è mai stato un problema con .pem, solo con il nome utente.

+0

Ho avuto lo stesso problema che è stato risolto utilizzando il nome utente predefinito corretto. La mia istanza di ec2 era Red Hat Linux e il nome utente era cloud-use. Quindi ssh -i /path/to/key.pem cloud-user @ ha funzionato. – Stuart

3

che avevo incontrato questo problema too.and ho trovato quello accadesse Allucinante Ho dimenticato di aggiungere il nome utente prima il nome host: in questo modo:

ssh -i test.pem ec2-32-122-42-91.us-west-2.compute.amazonaws.com 

e aggiungere il nome utente:

ssh -i test.pem [email protected] 

funziona!

Problemi correlati