it-swarm.com.de

Wenn Sie eine Datei mit scp an eine Amazon ec2-Instanz übertragen, wird mir immer die Berechtigung verweigert (publickey, gssapi-with-mic).

Ich versuche, eine Datei in eine ec2-Instanz zu übertragen. Ich folgte der Amazon-Dokumentation, so sah mein Befehl aus:

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

wenn ich alle Variablen durch die richtigen Dinge ersetzt habe, bin ich sicher, dass es der richtige Schlüssel ist und über die Berechtigung 400 verfügt. Wenn ich den Befehl anrufe, wird mir der Fingerabdruck des RSA-Schlüssels angezeigt. Ich tippe ja und es antwortet mit 

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

Ich habe mir viele andere ähnliche Fragen zum Stack-Überlauf angesehen und finde keinen richtigen Weg, dies zu tun.

Der ssh-Verkehr ist auch an Port 22 aktiviert.

22
Amre

Das von Amazon bereitgestellte Beispiel ist korrekt. Es klingt wie ein Problem mit Ordnerberechtigungen. Wenn Sie den Ordner erstellt haben, in den Sie versuchen, mit einem anderen Benutzer oder einem anderen Benutzer, den Sie erstellt haben, kopiert zu werden, haben Sie möglicherweise keine Berechtigung zum Kopieren oder Bearbeiten. 

Wenn Sie Sudo-Fähigkeiten haben, können Sie den Zugang für sich selbst öffnen. Obwohl dies nicht empfohlen wird, können Sie diesen Befehl ausprobieren:

Sudo chmod 777 /folderlocation

Das gibt jedem die vollständigen Lese-, Schreib- und Ausführungsberechtigungen (weshalb Sie es nicht bei 777 lassen sollten), aber Sie haben die Möglichkeit, Ihren scp-Befehl zu testen, um die Berechtigungen auszuschließen. 

Wenn Sie mit Berechtigungen nicht vertraut sind, schlage ich vor, dass Sie sich darüber informieren. Dies ist ein Beispiel: http://www.tuxfiles.org/linuxhelp/filepermissions.html Es wird im Allgemeinen empfohlen, den Ordner so weit wie möglich zu sperren, abhängig von der Art der darin enthaltenen Informationen. 

Wenn dies nicht die Ursache war, sollten Sie einige andere Dinge prüfen:

  • befinden Sie sich im Verzeichnis Ihres Schlüssels, wenn Sie den Befehl 'scp -i keyname' ausführen?
  • haben Sie die Berechtigung, den Ordner zu verwenden, aus dem Sie übertragen werden?

Viel Glück. 

18
brettwmc

Das Problem kann der Benutzername sein. Ich habe eine Datei in meine Amazon-Instanz kopiert und zuerst versucht, den Befehl zu verwenden: 

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

und bekam den Fehler: Berechtigung verweigert (publickey).

Mir wurde dann klar, dass meine Instanz eine Ubuntu-Umgebung ist und der Benutzer "Ubuntu" dann der richtige Befehl ist, der für mich funktioniert hat:

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

Die Datei "empty.test" ist eine Textdatei, die den Text "testing ..." enthält. Ersetzen Sie die Adresse Ihres virtuellen Servers durch die richtige Adresse durch den öffentlichen DNS Ihrer Instanz. Ich habe die IP zu meiner Instanz durch xx.yy.zz.tt ersetzt.

7
Lars Silen

Ich muss ubuntu @ anstelle von ec2-user @ verwenden, da bei i ssh ubuntu @ in meinem Terminal angezeigt wurde

Außerdem müssen Sie die Erlaubnis für die PEM-Datei auf Ihrem Computer festlegen 

chmod 400 /path/my-key-pair.pem

Der folgende Code kopiert die Datei von Ihrem Computer in die Ec2-Instanz.

scp -i ~/location_of_your_ec2_key_pair.pem ~/location_of_transfer_file/sample.txt [email protected]_your_ec2_instance.compute.amazonaws.com:~/folder_to_which_it_needs_to_be_copied

Der nachstehende Code kopiert die Datei von der Ec2-Instanz auf Ihren Computer

scp -i ~/location_of_your_ec2_key_pair.pem   [email protected]_your_ec2_instance.compute.amazonaws.com:~/location_of_transfer_file/sample.txt ~/folder_to_which_it_needs_to_be_copied
3
Shinto Joseph

Könnte sein, dass ein falscher Benutzername verwendet wird. Ist mir passiert, war der gleiche Fehler msg -> Permission denied (publickey, gssapi-keyex, gssapi-with-mic) ..__

0
Aleks Tkachenko

Ich hatte das gleiche Problem. Hoffe das wird für dich funktionieren.

scp -rp -i yourfile.pem ~/local_directory [email protected]_url:directory

Die Erlaubnis sollte auch korrekt sein, damit dies funktioniert.

0
Chandraprakash