Ich versuche, Dateien von einem entfernten Computer mit ssh
auf 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?
ssh
permissions
scp
Erez
quelle
quelle
scp My_file.txt user_id@server:
Sie diese Option, um sie in den Basisordner des Benutzers zu kopieren .Antworten:
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/erez
versuchen Sie Folgendes:Sie können den Pfad zu Ihrem Home-Verzeichnis durch die Verknüpfung ersetzen
~/
, so dass das Folgende den gleichen Effekt hat:Sie können sogar den Pfad auf der entfernten Seite ganz weglassen. Dies bedeutet Ihr Home-Verzeichnis.
Das heißt, um die Datei auf Ihren Desktop zu kopieren, möchten Sie sie möglicherweise übertragen an
/home/erez/Desktop/
:oder über die Verknüpfung:
Oder verwenden Sie einen relativen Pfad auf der Remote-Seite, der relativ zu Ihrem Home-Verzeichnis interpretiert wird:
Bearbeiten:
Wie @ckhan bereits erwähnte, muss man auch die Argumente austauschen, es muss sein
Wenn Sie also die Datei
My_file.txt
vom Serveruser_id@server
auf Ihren Desktop kopieren möchten, sollten Sie Folgendes versuchen:Befindet sich die Datei
My_file.txt
in Ihrem Home-Verzeichnis auf dem Server, können Sie erneut die Verknüpfung verwenden:quelle
~
sollte das vor der Auswertung geschützt sein, um beispielsweise auf dem Remote-Host ausgewertet zu werden\~
.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.
quelle
/Home
und nicht root ist, er hat keinen Schreibzugriff außerhalb~/
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
quelle
-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.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):
Aktivieren Sie außerdem alle Berechtigungen für den Remote-Ordner: (Nicht immer erforderlich):
quelle
Sie haben die Argumente
scp
umgedreht. Zuerst die Quelle, dann das Zielcp
.man scp
für mehr Details.quelle
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:
Dies wird in Ihr Home-Verzeichnis auf dem Server kopiert.
Dies wird auch funktionieren:
quelle
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.
quelle
Amazon Linux AMI
Stellen Sie sicher, dass Sie den absoluten Serverpfad festlegen müssen, im aktuellen Fall von zu Hause aus:
quelle
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.
quelle
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 [email protected]
Das funktioniert:
sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip [email protected]: Downloads
Das hat nicht funktioniert:
sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip [email protected]: / Downloads
quelle
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.
quelle
Vergewissern Sie sich vor der Verwendung des Befehls scp, dass Sie allen Personen außerhalb Lese-, Schreib- und Ausführungsberechtigungen erteilen. "chmod 777 dateiname"
quelle