2013-07-03 7 views
17

Sto tentando di trasferire un file in un'istanza di ec2. Ho seguito la documentazione di Amazon, questo è ciò che il mio comando sembrava:Il trasferimento di un file su un'istanza di Amazon ec2 usando scp mi dà sempre il permesso negato (publickey, gssapi-with-mic)

scp -i [the key's location] Documents/[the file's location] [email protected][public dns]:[home/[destination]] 

dove ho sostituito tutte le variabili con le cose giuste, io sono sicuro che sia la chiave giusta e ha il permesso 400. Quando chiamo il comando , mi dice l'impronta digitale della chiave RSA, mi chiede se voglio continuare a connettermi. Digito sì e risponde con

Permission denied (publickey,gssapi-with-mic) 
lost connection 

Ho guardato molte delle altre domande simili su stack overflow e non riesco a trovare un modo corretto di farlo.

traffico anche ssh è abilitato sulla porta 22.

+1

ho scoperto che quello che stavo facendo male, in un primo momento, ho avuto il nome dell'utente (in questo caso seqware) piuttosto che EC2-utente, che mi ha dato la stessa cosa, ma quando l'ho sostituita con root @ publicdns, ha funzionato – Amre

risposta

15

L'esempio amazon fornite sono corrette. Sembra un problema con le autorizzazioni della cartella. Se hai creato la cartella con cui stai cercando di copiarla con un altro utente o un altro utente, è probabile che tu non abbia le autorizzazioni per copiarla o modificarla.

Se si dispone delle capacità sudo, è possibile provare ad aprire l'accesso per conto proprio. Anche se non è raccomandato di essere lasciato in questo modo, si potrebbe provare questo comando:

sudo chmod 777 /folderlocation 

che dà completa lettura/scrittura/autorizzazioni di esecuzione a chiunque (da qui il motivo per cui non si dovrebbe lasciarlo a 777), ma vi darà la possibilità di testare il comando scp per escludere le autorizzazioni.

Successivamente, se non si conoscono i permessi, suggerisco di leggerli. questo è un esempio: http://www.tuxfiles.org/linuxhelp/filepermissions.html In genere si consiglia di bloccare la cartella il più possibile a seconda del tipo di informazioni contenute all'interno.

Se questo non era la causa alcune altre cose si potrebbe desiderare di controllare:

  • si trovano nella directory della vostra chiave quando l'esecuzione del 'SCP -i nome chiave' di comando?
  • hai i permessi per usare la cartella da cui stai trasferendo?

Buona fortuna.

0

Potrebbe essere un nome utente errato. Mi è capitato, era lo stesso errore msg -> Autorizzazione negata (chiave pubblica, gssapi-keyex, gssapi-con-mic). connessione persa

5

Il problema potrebbe essere il nome utente. Ho copiato un file al mio esempio Amazon e prima cercato di utilizzare il comando:

scp -r -i ../.ssh/Amazon_server_key_pair.pem ./empty.test [email protected]:~ 

e ottenuto l'errore: Autorizzazione negata (chiave pubblica).

Poi ho capito che il mio esempio è un ambiente Ubuntu e l'utente utente è quindi "Ubuntu" il comando corretto che ha funzionato per me è quindi:

scp -r -i ../.ssh/Amazon_server_key_pair.pem ./empty.test [email protected]:~ 

Il file "empty.test" è un testo file contenente il testo "testing ...". Sostituisci l'indirizzo del tuo server virtuale con l'indirizzo corretto nel DNS pubblico della tua istanza. Ho sostituito l'ip nella mia istanza con xx.yy.zz.tt.

-1

Per questo il comando esatto è: scp -i <.pem_file_path> <file_path> <user>@<host>:/<path>