scp (sichere Kopie) zur ec2-Instanz ohne Passwort

404

Ich habe eine EC2-Instanz ausgeführt (FreeBSD 9 AMI ami-8cce3fe5) und kann mit meiner von Amazon erstellten Schlüsseldatei ohne Kennwortabfrage problemlos darauf zugreifen.

Wenn ich jedoch eine Datei mit scp in die Instanz kopieren möchte, werde ich aufgefordert, ein Kennwort einzugeben:

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

Password:

Irgendwelche Ideen, warum dies geschieht / wie es verhindert werden kann?

Hoff
quelle
Verwenden Sie für Benutzer und Host genau dieselbe Kennung?
Lynch
Ich bin mir nicht sicher, ob ich verstehe, was Sie unter Kennung verstehen. Können Sie das erklären?
Hoff
Wenn Sie für eine Verbindung eine IP-Adresse und für die andere einen Namen verwenden, funktioniert dies nicht. Ich habe gerade gesehen, dass Sie die -iOption verwenden, um Ihre Identität anzugeben. Möglicherweise sollten Sie auch den Befehl anzeigen, mit dem Sie sich mit ssh anmelden.
Lynch
danke lynch, habe es herausgefunden!
Hoff

Antworten:

804

Ich habe es herausgefunden. Ich hatte die Argumente in der falschen Reihenfolge. Das funktioniert:

scp -i mykey.pem somefile.txt [email protected]:/
Hoff
quelle
14
Wenn Sie wissen, wie Sie über ssh eine Verbindung zu ec2 herstellen können, ändern Sie einfach den sshBefehl in scpund fügen Sie die Namensdatei nach der PEM-Datei hinzu.
Claudio Santos
11
Da diese Antwort etwas alt ist, ein neueres Beispiel aus meiner neuen EC2-Instanz: scp -i kp1.pem ./file.txt [email protected]: / home / ec2-user
siliconrockstar
1
@siliconrockstar Ihre Aussage kann [email protected]:/home/ec2-userleicht durch die kürzere und einfachere [email protected]:./ ./FTW ersetzt werden!
Brock
2
Ein sehr später Kommentar, aber was @ClaudioSantos vorschlägt, funktioniert nicht genau, wenn Sie einen nicht standardmäßigen Port verwenden. Es ist -p für ssh und -P für scp.
Inukshuk
1
Ich kann meine * .PEM-Datei verwenden, um in ec2 zu ssh. Wenn ich es jedoch zum SCP einer Datei verwenden möchte, wird der Fehler "Berechtigung verweigert" angezeigt. Wie kann ich das lösen?
AleX_
58
scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path
Syed Priom
quelle
Der Parameter (-r) ist nicht erforderlich, muss jedoch (/) vom Ende des Remote-Pfads entfernt werden. Ihr Beispiel hat für mich funktioniert. Vielen Dank
Abbas
35

Ich habe den folgenden Befehl verwendet, um von lokalem Linux Centos 7 nach AWS EC2 zu kopieren.

scp -i user_key.pem file.txt [email protected]:/home/ec2-user
Renato Coutinho
quelle
20

Den Kommentar von siliconerockstar zu einer Antwort zu machen, da er für mich funktioniert hat

scp -i kp1.pem ./file.txt [email protected]:/home/ec2-user
joseph.hainline
quelle
19
scp -i ~/.ssh/key.pem ec2-user@ip:/home/ec2-user/file-to-copy.txt .

Der Dateiname sollte nicht zwischen der PEM-Datei und der ec2-Benutzerzeichenfolge liegen - das funktioniert nicht. Auf diese Weise können Sie auch den Namen der kopierten Datei reservieren.

Dele
quelle
14

Kopieren Sie eine Datei von einem lokalen Server auf einen Remote-Server

sudo scp -i my-pem-file.pem ./source/test.txt [email protected]:~/destination/

Kopieren Sie eine Datei von einem Remote-Server auf einen lokalen Computer

sudo scp -i my-pem-file.pem [email protected]:~/source/of/remote/test.txt ./where/to/put

Die grundlegende Syntax lautet also:

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

-iist für die Identitätsdatei

Jamil Noyda
quelle
8

Nehmen wir an, dass sich Ihre PEM-Datei und die Datei somefile.txt, die Sie senden möchten, im Ordner Downloads befinden

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

Lass es mich wissen, wenn es nicht funktioniert

Yatender Singh
quelle
scp -i /Users/Username/Downloads/myfile.pem -r [email protected]: ~ / ~ / Desktop / für den Fall, dass Sie Dateien vom Server zum lokalen übertragen
möchten
2
Danke, ich habe :/am Ende "Zugang verweigert" bekommen, aber :~/damit funktioniert es
Kardamom
Ja, weil: / ist Root-Ordner und: ~ / ist Benutzerordner. Wenn Sie also Root-Benutzer sind, dann: / oder: ~ / alles funktioniert und wenn Sie kein Root-Benutzer sind, dann nur: ~ / müssen Sie verwenden.
Yatender Singh
3

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

Das wird euch allen sehr hilfreich sein

Barkat
quelle
2

Meine hadoopec2cluster.pemDatei war die einzige im Verzeichnis auf meinem lokalen Mac, konnte sie nicht mit aws scp scp -i hadoopec2cluster.pem hadoopec2cluster.pem ubuntu@serverip:~.

Kopierte hadoopec2cluster.pem nach hadoopec2cluster_2.pem und dann scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem ubuntu@serverip:~. Voila!

fall14123
quelle
2

Ich wurde aufgehängt, weil ich meine öffentliche Schlüsseldatei in angegeben habe

scp -i [private key file path]

Als ich diesen Fehler bemerkte und ihn stattdessen in den Pfad des privaten Schlüssels änderte, war ich fertig.

BuvinJ
quelle
2

In Ihrem Fall hat der Benutzer rootkeine Probleme. Stellen Sie jedoch in bestimmten Fällen, in denen Sie sich unter SSH als anderer Benutzer anmelden müssen, sicher, dass das Verzeichnis, das Sie verwenden, scpüber ausreichende Berechtigungen für den Benutzer verfügt, den Sie mit SSH bearbeiten.

Shawn
quelle
1

Um PSCP verwenden zu können, benötigen Sie den privaten Schlüssel, den Sie beim Konvertieren Ihres privaten Schlüssels mit PuTTYgen generiert haben. Sie benötigen auch die öffentliche DNS-Adresse Ihrer Linux-Instanz

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

Schreiben Sie diesen Code

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

Wenn Sie einen SSH-Schlüssel mit Zugriff auf den Zielserver haben und der Quellserver nicht, können Sie Ihren SSH-Agenten durch Hinzufügen von -o "ForwardAgent = yes" an den Quellserver weiterleiten, damit er mit Ihrem SSH-Schlüssel eine Verbindung herstellen kann der Zielserver.

庄景鹏
quelle
-6

Gerade getestet:

Führen Sie den folgenden Befehl aus:

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

Dann:

  1. erstelle ami (bild des ec2).
  2. Start von neuem Ami (Bild) aus Schritt 2 wählte neue Schlüssel.
amar essa
quelle