2011-07-02 10 views
283

Mam instancję EC2 działającą (FreeBSD 9 AMI ami-8cce3fe5), i mogę ssh do niej używając mojego pliku klucza utworzonego przez Amazon bez pytania o hasło, bez problemu.scp (bezpieczny egzemplarz) do instancji EC2 bez hasła

Jednak, gdy chcę skopiować plik na przykład za pomocą scp jestem proszony o podanie hasła:

scp somefile.txt -i mykey.pem [email protected]:/ 

Password: 

Jakieś pomysły dlaczego tak się dzieje/w jaki sposób można zapobiec?

+0

Czy używasz dokładnie tego samego identyfikatora dla użytkownika i hosta? – Lynch

+0

Nie jestem pewien, czy rozumiem, co masz na myśli przez identyfikator, czy możesz wyjaśnić? – Hoff

+0

jeśli dla jednego połączenia używasz adresu IP, a dla drugiego, którego używasz, to nie zadziała. Właśnie zobaczyłem, że używasz opcji -i, aby podać swoją tożsamość. Być może powinieneś także pokazać komendę, której używasz do logowania się przez ssh. – Lynch

Odpowiedz

609

Wymyśliłem to. Miałem argumenty w niewłaściwej kolejności. To działa:

scp -i mykey.pem somefile.txt [email protected]:/ 
+7

od kto wie, jak połączyć się z ec2 przez ssh, po prostu zmień polecenie 'ssh' na' scp' i dodaj plik nazwy po pliku pem. –

+5

Ponieważ ta odpowiedź jest trochę stara, to jest bardziej aktualny przykład z mojej nowej instancji EC2: scp -i kp1.pem ./file.txt [email protected]:/home/ec2-user – siliconrockstar

+0

Dostaję " Brak miejsca na urządzeniu ", gdy wykonuję to polecenie. scp -i /home/myusername/keypair.pem -r/home/myusername/digits/digits/jobs/20150724-111748-8bd3 [email protected] :/home/ubuntu – San

3

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

to będzie bardzo pomocne dla wszystkich was

43
scp -i /path/to/your/.pemkey -r /copy/from/path [email protected]:/copy/to/path 
+0

(-r) nie jest wymagany, ale jest wymagany do usunięcia (/) z końca ścieżki zdalnej. Twój przykład pracował dla mnie, dziękuję – Abbas

2

Mój plik hadoopec2cluster.pem był jedynym w katalogu na moim lokalnym mac, nie mógł scp to do aws przy użyciu scp -i hadoopec2cluster.pem hadoopec2cluster.pem [email protected]:~.

Skopiowano plik hadoopec2cluster.pem do hadoopec2cluster_2.pem, a następnie scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem [email protected]:~. Voila!

2

byłem zawieszony na ten temat bo określająca mój plik klucza publicznego w

scp -i [private key file path] 

Kiedy złapałem ten błąd i zmienił go na ścieżkę klucza prywatnego, a nie, byłem cały zestaw.

5

pozwala zakładać, że plik PEM i somefile.txt chcesz wysłać jest w folderze Pobrane

scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt [email protected]:~/ 

dać mi znać, jeśli to nie działa

+0

scp -r -i /Users/Username/Downloads/myfile.pem [email protected]: ~/~/Pulpit/ w przypadku u chcę przesłać plik z serwera na lokalny numer –

+2

Dzięki temu dostałem "access denied" z ': /' na końcu ale z ': ~ /' działa – cardamom

+0

tak, ponieważ:/jest katalogiem głównym i: ~/jest folderem użytkownika, więc jeśli jesteś rootem wtedy:/​​lub: ~/cokolwiek zadziała, a jeśli nie jesteś rootem to tylko: ~/musisz użyć. –

0

napisać ten kod

scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim [email protected]:/root/ 

Jeśli masz klucz SSH z dostępem do serwera docelowego, a serwer źródłowy tego nie robi, dodanie -o "ForwardAgent = yes" pozwoli ci przekazać agenta SSH do serwera źródłowego, aby mógł on używać Twój klucz SSH, aby połączyć się z serwerem docelowym.

13
scp -i ~/.ssh/key.pem [email protected]:/home/ec2-user/file-to-copy.txt . 

Nazwa pliku nie powinna znajdować się między plikiem pem a ciągiem użytkownika ec2 - to nie działa. Umożliwia to również zarezerwowanie nazwy kopiowanego pliku.

-2

tylko przetestowane:

Uruchom następujące polecenie:

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

wówczas:

  1. tworzenia ami (obraz z EC2).
  2. wypuszczenie z nowego ami (obrazu) z kroku 2 wybrało nowe klucze.