scp copy over ssh funktioniert nicht - erlaubnis verweigert fehler bitte


83

Es macht mich verrückt! Ich möchte nur eine einfache Datei vom Laptop auf den Server übertragen.

Ich benutze Ubuntu auf beiden Rechnern.

Also habe ich:

-rwxr-xr-x 1 sandro    414622 2011-10-14 23:42 sandrophoto-html.tar.gz

Und ich sende es mit:

sudo scp -P XXXX sandrophoto-html.tar.gz usern@server.local:/media/xx/xx/xx

Und ich bekomme: scp: /media/xx/xx/xx/sandrophoto-html.tar.gz: Permission denied

ps Möglicherweise mache ich es anders herum - ich möchte die Datei tar.gz, die sich auf meinem Desktop befindet, an den Remote-Server in den Ordner / media / yadayda senden


2
In meinem Fall ist es aus Sicherheitsgründen auf der Empfangsseite war ich das Verzeichnis chmod hatte der Remote - Benutzer zu erlauben , um die Datei zu schreiben (i chmod 777 das Verzeichnis - aber es ist internes Labor)
ilansch

Antworten:


95

Nach meinem Verständnis haben Sie die Dinge in der richtigen Reihenfolge. Die allgemeine Art, wie ein scp durchgeführt wird, ist:

scp sourceuser@sourcehost:/path/to/source/file destinationuser@destinationhost:/path/to/destination/

Ihrer Frage nach haben Sie eine lokale Datei, die Sie an den Zielserver senden möchten. Sie haben also die richtige Syntax, die gut ist!

Wenn Ihnen die Erlaubnis verweigert wird, verwenden Sie nicht den richtigen Benutzernamen oder etwas, was bei der Authentifizierung nicht stimmt. Wahrscheinlich liegt es daran, dass der Befehl sudo zunächst nur lokal funktioniert, sodass Sie auf der Remote-Box keinen Root-Zugriff haben. Das ist wahrscheinlich das Problem. Stellen Sie sicher, dass der Benutzer, mit dem Sie sich auf dem Remoteserver anmelden, über Schreibberechtigungen für den Speicherort verfügt, in den Sie schreiben möchten.

Wenn das Problem darin besteht, dass der Zielbenutzer ohne sudo keinen Zugriff auf diesen Speicherort hat, verschieben Sie die Datei in den Basisordner des Zielbenutzers, und verschieben Sie die Datei von der Shell auf dem anderen Server in den richtigen Speicherort.


9
Vielen Dank, ich musste Schreibberechtigung zum
Zielverzeichnis

@PiKey Dies sollte eine Antwort sein
Code-Guru

39

Hallo, hatte das gleiche Berechtigungsfehlerproblem auf diese Weise gelöst

Stellen Sie sicher, dass das Verzeichnis, in das Sie kopieren, 192.168.0.4dem Benutzer Benutzername gehört

chown username downloads

Auf Ihrem lokalen Rechner dann tun

sudo scp filename.zip username@192.168.0.4:/etc/Myfiles/downloads

Prost


thx, war Berechtigungen, speziell hier musste ich chmodauf dem Zielordner auf dem Remote-Server verwenden
Aquarius Power

26

Berechtigung verweigert bedeutet, dass Sie nicht der Stamm des Servers sind. Sie haben dort nur ein Konto. In diesem Fall müssen Sie Folgendes tun:

sudo scp -r /path2yourFolder/ username@server_Ip:/home/username

Dies wird in Ihr Home-Verzeichnis auf dem Server kopiert.

Dies wird auch funktionieren:

scp -r /path2yourFolder/ username@server_Ip:~/

2
Lebensretter! Ich habe es für mich getan.
Trdavidson

~/ist in der Tat der Weg, -rist für das rekursive Kopieren des gesamten Verzeichnisses.
Noam Manos

9

Dieser Fehler trat bei mir auf, als die Datei bereits am Zielspeicherort vorhanden war und die vorhandene Datei nur Leseberechtigungen hatte (das Überschreiben der Datei wurde verhindert). In meinem Fall habe ich mich gerade angemeldet und die vorhandene Datei gelöscht, wodurch das Problem behoben wurde.


7

Ich hatte ein ähnliches Problem, es passierte, weil sshTakes -p xxxxzur Angabe des Ports und scpTakes -P xxxxzur Angabe des Ports benötigt wurden. Kleinere Inkonsistenzen, so leicht zu übersehen :(


Segne dich. Es macht mir nichts aus, wenn ich ein paar Google-fähige Keywords hinzufüge, um dies besser sichtbar zu machen:scp doesn't work Permission denied (publickey). lost connection for ec2 compute.amazonaws.com
user1717828

0

Hatte das selbe Problem. Ich habe festgestellt, dass das Verzeichnis, in dem sich meine Quelldatei befindet , nicht über ausreichende Berechtigungen verfügt. Also habe ich den Modus nur rekursiv geändert, indem ich: chmod -R 771 directory_pathauf dem Quellcomputer verwendet habe.


0

Ich habe versucht, von meinem lokalen Computer zu kopieren username@localhost. Der von mir verwendete SSH-Schlüssel war nicht für den Zugriff auf meinen lokalen Host registriert, daher wurde mir die Erlaubnis verweigert. Wenn ich , dass aus dem entfernten Quelle Teil, es funktionierte.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.