Ich versuche, mit meinem Mac Terminal eine Datei von Downloads (phpMyAdmin, die ich online heruntergeladen habe) auf meine Amazon EC2-Instanz zu scannen.
Der Befehl, den ich benutzte, war:
scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
Der Fehler, den ich bekam: Warnung: Identitätsdatei myAmazonKey.pem nicht zugänglich: Keine solche Datei oder kein solches Verzeichnis. Berechtigung verweigert (publickey). verlorene Verbindung
Sowohl meine myAmazonkey.pem als auch meine phpMyAdmin-3.4.5-all-language.tar.gz befinden sich in Downloads, also habe ich es versucht
scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
und der Fehler, den ich bekam: Warnung: Identitätsdatei /User/Hello_Kitty22/Downloads/myAmazonkey.pem nicht zugänglich: Keine solche Datei oder kein solches Verzeichnis. Berechtigung verweigert (publickey). verlorene Verbindung
Kann mir bitte jemand sagen, wie ich mein Problem beheben kann?
ps es gibt einen ähnlichen Beitrag: scp (sichere Kopie) zur ec2-Instanz ohne Passwort, aber es beantwortet meine Frage nicht.
quelle
Antworten:
Versuchen Sie, den Benutzer anzugeben
ec2-user
, zSiehe Herstellen einer Verbindung zu Linux / UNIX-Instanzen mit SSH .
quelle
:/
würde versuchen, den Ordner in das Stammverzeichnis des Systems zu kopieren, was auf allen Computern Berechtigungsfehler verursachen würde, ohne sudo (oder als root) auszuführen.Das zweite Verzeichnis ist Ihr Ziel. Verwenden Sie dort keinen Servernamen. Mit anderen Worten, Sie müssen den Computernamen für den Computer, auf dem Sie sich gerade befinden, nicht angeben.
-r wenn es ein Verzeichnis ist.
quelle
Ihr Schlüssel darf nicht öffentlich sichtbar sein, damit SSH funktioniert. Verwenden Sie diesen Befehl bei Bedarf:
quelle
Sie sollten sich auf Ihrem lokalen Computer befinden, um den obigen Befehl scp auszuführen.
Versuchen Sie auf Ihrem lokalen Computer:
quelle
Hier sind die Details, was für eine EC2- Instanz funktioniert :
Einige Anmerkungen für den Anfang:
-i
scp
steht für Secure Copy Protocol. Wenn Sie die Wörter kennen, können Sie sich leichter an den Befehl erinnern.-i
schreibt vor, dass Sie die.pem
Datei als nächsten Parameter angeben müssen. Wenn es keine gibt-i
, brauchen Sie keine.pem
.:~
am Ende des Ziels für die EC2-Instanz.quelle
Ich hatte genau das gleiche Problem, meine Lösung war zu
scp -i /path/pem -r /path/file/ ec2-user@public aws dns name:
(hier leer lassen)Sobald Sie diesen Teil erledigt haben, rufen Sie den SSH-Server und die MV-Datei am gewünschten Speicherort auf
quelle
quelle
Das folgende SCP-Format funktioniert für mich
SampleFile.txt : Dies ist der Pfad aus Ihrem Stammverzeichnis (in meinem Fall / home / ubuntu). In meinem Fall war die Datei, die ich herunterladen wollte, unter / var / www
SampleFile2.txt : Dies ist der Pfad des Stammpfads Ihres Computers (in meinem Fall / home / MyPCUserName).
Also muss ich unten Befehl schreiben
quelle
Datei von lokal an Server senden:
Datei vom Server auf lokal herunterladen:
quelle
In diesem Video wird Schritt für Schritt (einschließlich der unten genannten Punkte) beschrieben, wie Sie mit SCP Dateien von einem lokalen Computer auf eine AWS EC2 Linux-Instanz kopieren .
So beheben Sie dieses spezielle Problem bei der Verwendung von SCP:
Sie müssen den richtigen Linux-Benutzer angeben. Von Amazon :
Ihr privater Schlüssel darf nicht öffentlich sichtbar sein. Führen Sie den folgenden Befehl aus, damit nur der Root-Benutzer die Datei lesen kann.
quelle
Überprüfen Sie die Berechtigungen für die .pem-Datei ... openssh mag normalerweise keine weltweit lesbaren privaten Schlüssel und schlägt fehl (iir, scp leistet keine großartige Arbeit, um dem Benutzer dieses Feedback zu geben).
Können Sie einfach mit diesem Schlüssel zu Ihrem AWS-Host ssh?
quelle
Zuerst sollten Sie den Dateimodus
.pem
vom Lese- und Schreibmodus in den Nur-Lese-Modus ändern . Dies kann nur durch einen einzigen Befehl im Terminal erfolgensudo chmod 400 your_public_key.pem
quelle
Ich habe alle oben genannten Vorschläge ausprobiert und nichts hat funktioniert. Ich habe die aktuelle Instanz beendet, eine weitere gestartet und den gleichen exakten Vorgang wiederholt. Diesmal keine Probleme. Manchmal könnte es die Schuld des entfernten Amis sein.
quelle
Das hat gerade bei mir funktioniert. Ich habe eine Kombination aus zwei anderen Antworten auf diese Frage verwendet.
Das "[email protected]" wird aus dem öffentlichen DNS Ihrer ec2-Instanz kopiert und eingefügt.
quelle
Ich würde ... benutzen:
scp -i "path to .pem file" "file to be copeide from local machine" username@amazoninstance: 'destination folder to copy file on remote machine'
quelle