scp (copia protetta) nell'istanza ec2 senza password


404

Ho un'istanza EC2 in esecuzione (FreeBSD 9 AMI ami-8cce3fe5), e posso usarlo usando il mio file chiave creato da Amazon senza la richiesta della password, nessun problema.

Tuttavia, quando voglio copiare un file nell'istanza usando scp mi viene chiesto di inserire una password:

scp somefile.txt -i mykey.pem root@my.ec2.id.amazonaws.com:/

Password:

Qualche idea sul perché questo accada / come può essere prevenuto?


Stai utilizzando esattamente lo stesso identificativo per l'utente e l'host?
Lynch,

Non sono sicuro di capire cosa intendi per identificatore, potresti spiegarlo?
Hoff,

se per una connessione usi un indirizzo IP e per l'altra usi un nome non funzionerà. Ho appena visto che usi l' -iopzione per fornire la tua identità. Forse dovresti anche mostrare il comando che usi per accedere con ssh.
Lynch,

grazie Lynch, capito!
Hoff,

Risposte:


804

L'avevo capito. Ho avuto gli argomenti nell'ordine sbagliato. Questo funziona:

scp -i mykey.pem somefile.txt root@my.ec2.id.amazonaws.com:/

14
da chi capisce come connettersi a ec2 tramite ssh, basta cambiare il sshcomando in scpe aggiungere il file del nome dopo il file pem.
Claudio Santos,

11
Poiché questa risposta è un po 'vecchia, un esempio più recente della mia nuova istanza EC2: scp -i kp1.pem ./file.txt ec2-user@1.2.3.4: / home / ec2-user
siliconrockstar

1
@siliconrockstar La tua affermazione ec2-user@1.2.3.4:/home/ec2-userpuò essere facilmente sostituita con la ec2-user@1.2.3.4:./ ./FTW più breve e più facile !
brock

2
Un commento molto tardi, ma ciò che suggerisce @ClaudioSantos non funziona esattamente se si utilizza una porta non standard. È -p per ssh e -P per scp.
Inukshuk,

1
Posso usare il mio file * .PEM per ssh in ec2. tuttavia, quando voglio usarlo per SCP un file, mi dà l'errore "Autorizzazione negata"! Come posso risolvere questo?
AleX_

58
scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

Il parametro (-r) non è richiesto ma è necessario per rimuovere (/) dalla fine del percorso remoto. Il tuo esempio ha funzionato per me, grazie mille
Abbas il

35

Ho usato sotto il comando per copiare da Linux Centos 7 locale ad AWS EC2.

scp -i user_key.pem file.txt ec2-user@my.ec2.id.amazonaws.com:/home/ec2-user


19
scp -i ~/.ssh/key.pem ec2-user@ip:/home/ec2-user/file-to-copy.txt .

Il nome del file non dovrebbe essere tra il file pem e la stringa ec2-user - che non funziona. Ciò consente anche di riservare il nome del file copiato.


14

copia un file da un server locale a un server remoto

sudo scp -i my-pem-file.pem ./source/test.txt ec2-user@1.2.3.4:~/destination/

copia un file da un server remoto a un computer locale

sudo scp -i my-pem-file.pem ec2-user@1.2.3.4:~/source/of/remote/test.txt ./where/to/put

Quindi la sintassi sostanzialmente è: -

scp -i my-pem-file.pem username@source:/location/to/file username@destination:/where/to/put

-iè per il file identity_


8

supponiamo che il tuo file pem e somefile.txt che desideri inviare sia nella cartella Download

scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt root@my.ec2.id.amazonaws.com:~/

fammi sapere se non funziona


scp -i /Users/Username/Downloads/myfile.pem -r ubuntu@my.ect.id.amazonaws.com: ~ / ~ / Desktop / nel caso in cui desideri trasferire file dal server al locale
Yatender Singh

2
Grazie ho ricevuto "accesso negato" :/alla fine ma con :~/esso funziona
cardamomo il

sì perché: / è la cartella principale e: ~ / è la cartella utente, quindi se sei un utente root allora: / o: ~ / tutto funzionerà e se non sei un utente root allora devi solo: ~ / devi usare.
Yatender Singh,

3

scp -i /home/barkat/Downloads/LamppServer.pem lampp_x64_12.04.tar.gz

questo sarà molto utile per tutti voi ragazzi


2

Il mio hadoopec2cluster.pemfile era l'unico nella directory sul mio mac locale, non potevo scapparlo su aws usandoscp -i hadoopec2cluster.pem hadoopec2cluster.pem ubuntu@serverip:~ .

Copia hadoopec2cluster.pem in hadoopec2cluster_2.pem e quindi scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem ubuntu@serverip:~. Ecco!


2

Sono stato bloccato su questo perché stavo specificando il mio file di chiave pubblica in

scp -i [private key file path]

Quando ho riscontrato quell'errore e l'ho modificato nel percorso della chiave privata, ero pronto.


2

Nel tuo caso, l'utente rootnon avrà alcun problema. Ma in alcuni casi in cui ti viene richiesto di accedere a SSH come utente diverso, assicurati che la directory che stai utilizzando scpdisponga delle autorizzazioni adeguate per l'utente a cui stai eseguendo SSH.


1

Per utilizzare PSCP, è necessaria la chiave privata generata in Conversione della chiave privata tramite PuTTYgen. È inoltre necessario l'indirizzo DNS pubblico dell'istanza di Linux

pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@public_dns:/home/ec2-user/Sample_file.txt

0

scrivi questo codice

scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim root@192.168.2.228:/root/

Se si dispone di una chiave SSH con accesso al server di destinazione e il server di origine no, l'aggiunta di -o "ForwardAgent = yes" consente di inoltrare l'agente SSH al server di origine in modo che possa utilizzare la chiave SSH per connettersi a il server di destinazione.


-6

Appena testato:

Esegui il seguente comando:

sudo shred -u /etc/ssh/*_key /etc/ssh/*_key.pub

Poi:

  1. crea ami (immagine di ec2).
  2. il lancio da una nuova ami (immagine) dal passaggio n. 2 ha scelto nuove chiavi.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.