Ich versuche, Dateien mit ssh
von meinem Remotecomputer auf meinen Computer zu übertragen:
scp My_file.txt user_id@server:/Home
Dadurch sollte My_file.txt im Home-Ordner auf meinem eigenen Computer abgelegt werden, oder? Ich erhalte
scp / Home: Berechtigung verweigert
Auch wenn ich versuche: ...@server:/Desktop
, um die Dateien vom Remotecomputer auf meinen Desktop zu kopieren.
Was mache ich falsch?
Kommentare
- Wenn Sie die Datei in den Basisordner von ‚ user_id ‚ use
scp My_file.txt user_id@server:
Es wird in den Home-Ordner des Benutzers kopiert.
Antwort
Ihre Befehle versuchen, das neue Dokument in die root (/
) Ihrer Maschine. Sie möchten sie in Ihr home -Verzeichnis übertragen (da Sie keine Berechtigungen zum Schreiben in /
). Wenn der Pfad zu Ihrem Zuhause so etwas wie /home/erez
ist, versuchen Sie Folgendes:
scp My_file.txt user_id@server:/home/erez/
Sie können den Pfad zu Ihrem ersetzen Ausgangsverzeichnis mit der Verknüpfung ~/
, sodass Folgendes den gleichen Effekt hat:
scp My_file.txt user_id@server:~/
Sie können sogar gehen den Weg insgesamt auf der entfernten Seite verlassen; 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 nach /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 mit Ein relativer Pfad auf der Remote-Seite, der relativ zu Ihrem Home-Verzeichnis interpretiert wird:
scp My_file.txt user_id@server:Desktop/
Bearbeiten:
Als @ ckhan bereits erwähnt, müssen Sie auch die Argumente austauschen, es muss
scp FROM TO
sein, wenn Sie also die Datei kopieren möchten My_file.txt
vom Server user_id@server
zu Ihrem Desktop sollten Sie Folgendes versuchen:
scp user_id@server:/path/to/My_file.txt ~/Desktop/
Wenn die Die Datei My_file.txt
befindet sich in Ihrem Home-Verzeichnis auf dem Server. Sie können erneut die Verknüpfung verwenden:
scp user_id@server:~/My_file.txt ~/Desktop/
Kommentare
- – Ich ‚ habe versucht: “ ~ / für ‚ Home ‚ jetzt und auch “ ~ / Desktop /. Beides führte zu: My_file.txt 100% 0 0.0 KB / s 00:00, und ich kann die Dateien in meinen Ordnern nicht sehen. Was mache ich noch falsch? Vielen Dank!
- In Ihrem zweiten Befehlsbeispiel sollte die
~
vor einer Auswertung geschützt werden, um auf dem Remote-Host ausgewertet zu werden:\~
zum Beispiel. - Um Ihnen zu danken, habe ich mich auf der Website registriert. Vielen Dank, dass Sie meinen Tag gerettet haben 🙂
Antwort
Ich bin hierher gekommen, um „Dateien mit scp übertragen: Berechtigung verweigert „weil ich den gleichen Fehler hatte.
In meinem Fall hätte die mit scp heruntergeladene Datei eine Datei überschrieben, die root gehört, und ich war nicht root. Kurz gesagt, überprüfen Sie den Besitz der Datei überschrieben.
Kommentare
- In diesem Fall ist es ‚, weil er ‚ versucht, in
/Home
zu schreiben und ist kein Root. ‚ hat keinen Schreibzugriff außerhalb von~/
- Sie helfen mir.
Antwort
Was die „verweigerte Berechtigung“ 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 root gehört! ) Auf dem Remote-Computer (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)
Antwort
Dies scheint ein Problem mit der Berechtigung 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.
Kommentare
-
-rw-r--r--
ist 644, nicht 744. Festlegen der ausführbaren Berechtigung für a Dateien, die nicht ausführbar sind, können Probleme verursachen.
Antwort
Sie haben die Argumente für scp
umgekehrt.Es ist zuerst die Quelle und dann das Ziel, wie cp
. man scp
für weitere Details.
Antwort
Wie Jinzai betonte, kann der Remote-Ordner dem Stamm gehören. In meinem Fall hat jemand (oder etwas) den Besitzer des Home-Ordners des Benutzers geändert Wurzeln. Als ich versuchte, eine Datei an einen Remote-Server zu senden, trat ein Fehler mit verweigerter Berechtigung auf.
Sie können den Eigentümer des Ordners mit dem Befehl ls -l
überprüfen :
drwxr-xr-x 5 root root 4096 Oct 21 08:16 user2
Im obigen Beispiel gehört der Ordner user2 dem Stammverzeichnis. Sie können den Eigentümer folgendermaßen ändern:
chown user2:user2 user2
Es gibt auch eine schnellere Möglichkeit, zu überprüfen, ob der Server eine Datei blockiert scp oder nicht. Versuchen Sie, eine Datei im Zielordner zu erstellen, z. B. mit touch test_file
. Wenn Sie keine Datei im Ordner erstellen konnten, können Sie die Datei hier nicht von demselben Benutzer aus der Ferne senden.
Antwort
Berechtigung verweigert bedeutet, dass Sie nicht das Stammverzeichnis 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 funktioniert auch :
scp -r /path2yourFolder/ username@server_Ip:~/
Antwort
Amazon Linux AMI
Stellen Sie sicher, dass Sie den absoluten Serverpfad von home im aktuellen Fall festlegen müssen:
scp file.txt SSH-ALIAS:/home/YOUR_USER/
Antwort
Installieren Sie ein Windows-Tool“ mRemoteG „von www.mremoteng.org/
Erstellen Sie Ihre SSH-Verbindung zum gewünschten Feld.
Klicken Sie auf das Menü „Datei übertragen“.
Damit können Dateien problemlos von Windows auf Linux übertragen werden.
Danke.
Antwort
Auf beiden Seiten des scp gelten die gleichen Berechtigungen. Diese Fehlermeldung wird angezeigt, wenn dem Benutzer die Berechtigung zum Schreiben an das Ziel fehlt. 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.
Antwort
In meinem Fall habe ich auch versucht, dem Ordner alle Berechtigungen mit -R zu erteilen, 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 an den Server gesendet habe, zum Beispiel: ssh [email protected]
Dies funktioniert:
sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip [email protected]: Downloads
Dies funktionierte nicht:
sudo scp -rp /Users/macintosh.vn/Downloads /bbhs_20190301.zip [email protected]: / Downloads
Antwort
Einfache Lösung. Stellen Sie sicher, dass Sie root sind. SCP an die Fernbedienung und Sie werden nach dem Root-Passwort des Computers gefragt. Hatte gerade dieses Problem, das die Lösung war. Sie rooten sie root.
Kommentare
- Da Root-Anmeldungen normalerweise in sshd_config deaktiviert sind, sollten Sie dem OP zeigen, wie um dies zu ändern (obwohl ‚ nicht empfohlen wird).
- Warum bestehen Sie darauf, root zum Kopieren einer (beliebigen) Datei zu verwenden? Beachten Sie auch die akzeptierte Antwort von vor ~ 7 Jahren …
Antwort
bevor Sie den Befehl scp verwenden, machen Sie Stellen Sie sicher, dass Sie allen außerhalb Berechtigungen zum Lesen, Schreiben und Ausführen erteilen. „chmod 777 Dateiname“
Kommentare
- Sie können Dateien kopieren, die nicht 777
sind