Dateien mit scp übertragen: Berechtigung verweigert


23

Ich versuche, Dateien von einem entfernten Computer mit sshauf meinen Computer zu übertragen:

scp My_file.txt user_id@server:/Home

Dies sollte My_file.txt im Home-Ordner auf meinem eigenen Computer ablegen, oder? Ich bekomme

scp / Home: Erlaubnis verweigert

Auch wenn ich versuche ...@server:/Desktop:, um die Dateien vom Remote-Computer auf meinen Desktop zu kopieren.

Was mache ich falsch?


1
Wenn Sie die Datei in den Basisordner von 'user_id' kopieren möchten, verwenden scp My_file.txt user_id@server:Sie diese Option, um sie in den Basisordner des Benutzers zu kopieren .
Manula Waidyanatha

Antworten:


35

Ihre Befehle versuchen, das neue Dokument im Stammverzeichnis ( /) Ihres Computers abzulegen. Was Sie tun möchten, ist, sie in Ihr Home- Verzeichnis zu übertragen (da Sie keine Schreibrechte haben /). Wenn der Weg zu Ihnen nach Hause ungefähr so ​​ist, /home/erezversuchen Sie Folgendes:

scp My_file.txt user_id@server:/home/erez/

Sie können den Pfad zu Ihrem Home-Verzeichnis durch die Verknüpfung ersetzen ~/, so dass das Folgende den gleichen Effekt hat:

scp My_file.txt user_id@server:~/

Sie können sogar den Pfad auf der entfernten Seite ganz weglassen. Dies bedeutet Ihr Home-Verzeichnis.

scp My_file.txt user_id@server:

Das heißt, um die Datei auf Ihren Desktop zu kopieren, möchten Sie sie möglicherweise übertragen an /home/erez/Desktop/:

scp My_file.txt user_id@server:/home/erez/Desktop/

oder über die Verknüpfung:

scp My_file.txt user_id@server:~/Desktop/

Oder verwenden Sie einen relativen Pfad auf der Remote-Seite, der relativ zu Ihrem Home-Verzeichnis interpretiert wird:

scp My_file.txt user_id@server:Desktop/

Bearbeiten:

Wie @ckhan bereits erwähnte, muss man auch die Argumente austauschen, es muss sein

scp FROM TO

Wenn Sie also die Datei My_file.txtvom Server user_id@serverauf Ihren Desktop kopieren möchten, sollten Sie Folgendes versuchen:

scp user_id@server:/path/to/My_file.txt ~/Desktop/

Befindet sich die Datei My_file.txtin Ihrem Home-Verzeichnis auf dem Server, können Sie erneut die Verknüpfung verwenden:

scp user_id@server:~/My_file.txt ~/Desktop/

- Ich habe versucht: "~ /" für 'Home' jetzt und auch "~ / Desktop /. Beide führten zu: My_file.txt 100% 0 0.0 KB / s 00:00, und ich kann die Dateien in meinem nicht sehen Ordner. Was mache ich noch falsch? Vielen Dank!
Erez

In Ihrem zweiten Befehlsbeispiel ~sollte das vor der Auswertung geschützt sein, um beispielsweise auf dem Remote-Host ausgewertet zu werden \~.
Dan

1
Um Ihnen zu danken, habe ich mich auf der Website registriert. Vielen Dank, dass Sie meinen Tag gerettet haben :)
Ad Infinitum

6

Ich kam hierher, um "Dateien mit scp: permission denied" zu übertragen, da ich den gleichen Fehler hatte.

In meinem Fall hätte die mit scp heruntergeladene Datei eine Datei von root überschrieben, und ich war nicht root. Kurz gesagt, überprüfen Sie den Besitz der zu überschreibenden Datei.


1
In diesem Fall ist es, weil er versucht zu schreiben /Homeund nicht root ist, er hat keinen Schreibzugriff außerhalb~/
Shadur

Du hilfst mir.
Longdeqidao

4

Dies scheint wie eine Erlaubnisfrage zu sein

Die Datei verfügt möglicherweise nicht über Leseberechtigungen, da sie als Quellkonto an den Zielserver übermittelt wird.

Sie müssen sicherstellen, dass für die Datei an der Quelle Berechtigungen erforderlich sind, insbesondere Leseberechtigungen

-rw-r - r--

chmod 744

scp dann die Datei zum Ziel. Dies wird behoben


3
-rw-r--r--ist 644, nicht 744. Das Festlegen der Ausführbarkeitsberechtigung für eine Datei, die tatsächlich nicht ausführbar ist, kann Probleme verursachen.
G-Man sagt, dass Monica

3

Was die "Berechtigung verweigert" für mich behoben hat, war, auf dem Remote-Server den Ordnerbesitz in root zu ändern: (Dies kann passieren, wenn Sie eine Datei an einen Nicht-Root-Benutzer senden und das Verzeichnis im Besitz von root ist!) Ein die entfernte Maschine (Kopierziel):

sudo chown (your username) (remote folder)

Aktivieren Sie außerdem alle Berechtigungen für den Remote-Ordner: (Nicht immer erforderlich):

sudo chmod 777 (remote folder)

1

Sie haben die Argumente scpumgedreht. Zuerst die Quelle, dann das Ziel cp. man scpfür mehr Details.


1

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:~/

0

Installieren Sie ein Windows-Tool "mRemoteG" von www.mremoteng.org/

Erstellen Sie Ihre SSH-Verbindung zur gewünschten Box.

Klicken Sie auf das Menü "Datei übertragen".

Es ermöglicht die einfache Übertragung von Dateien von Windows nach Linux.

Vielen Dank.


0

Amazon Linux AMI

Stellen Sie sicher, dass Sie den absoluten Serverpfad festlegen müssen, im aktuellen Fall von zu Hause aus:

scp file.txt SSH-ALIAS:/home/YOUR_USER/

0

Die gleichen Berechtigungen gelten auf beiden Seiten des SCP. Sie erhalten diese Fehlermeldung, wenn der Benutzer keine Berechtigung zum Schreiben an das Ziel hat. Die Symptome scheinen die Quelle zu implizieren, in meinem Fall wurde das Ziel jedoch von root erstellt und es fehlte die Schreibberechtigung für das beabsichtigte Benutzerkonto.


0

In meinem Fall habe ich auch versucht, die gesamte Berechtigung mit -R für den Ordner zu erteilen, habe aber immer noch den Fehler bezüglich der Berechtigung erhalten.

Ich musste "/" vor dem Pfad des Zielservers und Ordners entfernen. Der Grund dafür ist, dass Downloads der erste Ordner ist, den ich auflisten kann, nachdem ich ssh auf den Server gesendet habe, zum Beispiel: ssh tiennsloit@13.76.91.2

Das funktioniert:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2: Downloads

Das hat nicht funktioniert:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2: / Downloads


0

Einfache Lösung. Stellen Sie sicher, dass Sie root sind. SCP an die Fernbedienung und Sie werden nach dem root-Passwort des Rechners gefragt. Hatte gerade dieses Problem, das die Lösung war. Sie wurzeln sie Wurzel.


Da Root-Anmeldungen in sshd_config normalerweise deaktiviert sind , sollten Sie dem OP zeigen, wie dies geändert werden kann (obwohl dies nicht empfohlen wird).
Ajgringo619

Warum bestehen Sie darauf, root zum Kopieren einer (beliebigen) Datei zu verwenden? Beachten Sie auch die akzeptierte Antwort von vor ~ 7 Jahren ...
Jeff Schaller

-3

Vergewissern Sie sich vor der Verwendung des Befehls scp, dass Sie allen Personen außerhalb Lese-, Schreib- und Ausführungsberechtigungen erteilen. "chmod 777 dateiname"


Sie können Dateien kopieren, die nicht 777
Archemar
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.