SCP-Zugriff verweigert: Warum das passiert und wie man es behebt
SCP ist ein Open-Source-Tool zur Dateiübertragung via SSH. Es kann unter Linux und anderen unterstützten Betriebssystemen verwendet werden, um Dateien über SSH zu übertragen. Damit lassen sich Dateien zwischen zwei Hosts über eine SSH-Verbindung austauschen.

das könnte passieren Fehler „Zugriff verweigert“ Im SCP aus mehreren Gründen, wie zum Beispiel Falsch definierte Routen Oder Fehler bei der SchreibgenehmigungWir werden einige der Gründe untersuchen, die zu diesem Fehler führen, und wie man ihn beheben kann.
Grund: Fehlende Schreibberechtigung
Ein Grund für das Auftreten dieses Fehlers ist, dass Ihr Benutzer besitzt keine Schreibberechtigung. Für das spezifische Verzeichnis auf dem Host, in das Sie die Dateien schreiben möchten. Um diese Berechtigungen zu überprüfen, können Sie Folgendes tun: Verwendung des Befehls 'ls -l'Dort werden die Schreibberechtigungen angezeigt.

Suche nach dem Buchstaben 'w' Innerhalb der ersten vier Zeichen in der ersten Spalte der Ausgabe. Wenn Sie diese sehen, bedeutet das, dass Ihr Benutzer hat Schreibberechtigung Daher das Verzeichnis. Alternativ können Sie jederzeit mit dem Befehl `touch` in diesem Verzeichnis eine Datei erstellen. Wenn keine Fehlermeldung wie „Zugriff verweigert“ erscheint, bedeutet dies, dass Ihr Benutzer Schreibrechte besitzt.
Beispiel:
Angenommen, Sie möchten eine Datei mithilfe von SCP auf einen entfernten Host kopieren und erhalten aufgrund fehlender Schreibberechtigungen die Fehlermeldung „Zugriff verweigert“.
scp abcd.txt user@127.0.0.1:/home/abcduser/abcd.txt
Lösung 1: Verwenden Sie das Root-Konto zum Übertragen von Dateien
Um einen solchen Fehler zu beheben, Sie müssen Schreibrechte erteilen. Damit Ihr Benutzer Zugriff auf dieses Verzeichnis hat, benötigen Sie Root- oder sudo-Rechte. Alternativ können Sie die Datei in ein Verzeichnis kopieren, in dem Ihr Benutzer Schreibrechte besitzt.
In einem solchen Fall müssen Sie entweder dem aktuellen Benutzer Schreibrechte für /home/abcduser gewähren oder Sie können das Root-Benutzerkonto verwenden, um diese Datei zu kopieren.
Um einem Root-Benutzer das Kopieren einer Datei mit scp zu ermöglichen, müssen Sie die Anmeldung des Root-Benutzers über SSH erlauben. Dies wird aus Sicherheitsgründen nicht empfohlen, kann aber in solchen Fällen trotzdem verwendet und anschließend wieder deaktiviert werden.
Öffnen Sie dazu Die OpenSH-Konfigurationsdatei befindet sich unter /etc/ssh/sshd_config وEntfernen Sie den Kommentar zu PermitRootLogin. In einem Texteditor auf dem Remote-Host.

Als Nächstes stellen Sie mit dem Root-Konto eine Verbindung zum Remote-Host her.
Führen Sie anschließend den Befehl wie folgt aus:
scp abcd.txt root@127.0.0.1:/abcduser/abcd.txt
Oder einfach ausgedrückt: Das wird genügen.
scp abcd.txt 127.0.0.1:/abcduser/abcd.txt
Weil sie identisch sind.
Lösung 2: Fügen Sie Ihren Benutzer der Schreibberechtigungsgruppe hinzu:
Damit ein Benutzer in Linux in ein Verzeichnis/eine Datei schreiben kann, muss er entweder der Gruppe hinzugefügt werden, der das Verzeichnis oder die Datei gehört, oder die Datei muss diesem Benutzer gehören.
In unserem Beispiel führen wir auf dem entfernten System den Befehl ls -l im Verzeichnis /home/ aus, um herauszufinden, welcher Gruppe /home/abcd gehört.
Der Befehl `ls -l` liefert eine Ausgabe, in der der Inhalt der vierten Spalte die Gruppe angibt, der das entsprechende Verzeichnis/die entsprechende Datei gehört.

In unserem Beispiel gehört das Verzeichnis `/home/abcduser` der Gruppe `abcduser`, und daher können wir
Führen Sie einfach diesen Befehl auf dem Remote-System aus.
sudo groupadd user abcd
Es ist die Gruppe 'abcd' Die Gruppe, der unser Benutzer angehören soll, und der Benutzer, dessen Gruppe wir ändern möchten, ist „Benutzer“.
Führen Sie den Befehl `ls -l` erneut aus, und wenn Ich sah den Buchstaben 'w' an sechster Stelle. Aus dem Ausgang in der ersten Spalte geht hervor, dass die Gruppe Schreibrechte für dieses Verzeichnis besitzt.
Führen Sie den Befehl anschließend erneut aus, in unserem Fall also:
scp abcd.txt user@somepc:/home/abcduser/abcd.txt
Lösung 3: Verwenden Sie den Benutzer, dem dieses Verzeichnis gehört, um die Datei zu kopieren.
Die einfachste Lösung ist, dass der Benutzer, dem dieses Verzeichnis gehört, die Datei dorthin kopiert.
Führen Sie einfach `ls -l` im Verzeichnis aus. In unserem Fall wäre das:
ls -l /home/

Die Ausgabe in der dritten Spalte zeigt den Benutzer an, dem das Verzeichnis mit dem entsprechenden Namen gehört. In unserem Fall ist `abcduser` der Besitzer des Verzeichnisses `/home/abcduser`, wie im obigen Screenshot dargestellt.
Verwenden Sie dann dieses spezielle Konto, während Sie die Datei mit `scp` auf den Remote-Host kopieren.
In unserem Fall führen wir den Befehl wie folgt aus:
scp abcd.txt abcduser@127.0.0.1:/home/abcduser/abcd.txt
Grund 2: Der Remote-Host besitzt keinen privaten Schlüssel für diesen Benutzer.
Beim Versuch, Dateien zwischen Hosts zu übertragen, kann die Fehlermeldung „scp permission denied“ (öffentlicher Schlüssel) erscheinen.
Dies ist ein Authentifizierungsproblem für `ssh`, und der Grund dafür ist, dass Sie `scp` während der Ausführung keinen privaten Schlüssel hinzugefügt haben.
Beispiel:
scp somefile user@127.0.0.1:/home/user/somefile.txt
الحل:
Die einfache Lösung dafür ist Ausführen des Befehls `scp` mit dem Flag `-i`Fügen Sie daher den privaten Schlüssel des Benutzers hinzu, mit dem Sie eine Verbindung zum Remote-Host herstellen und Dateien übertragen möchten.
Sie müssen sicherstellen, dass Sie den privaten Schlüssel für diesen Benutzer besitzen. Falls Sie diesen nicht besitzen, müssen Sie ihn auf dem Remote-Rechner erstellen und anschließend das `scp`-Tool mit dem Parameter `-i` verwenden.
In unserem Fall wäre die Lösung:
scp -i key.pem somefile user@127.0.0.1:/home/user/somefile.txt
Hierbei ist `key.pem` die private Schlüsseldatei für den Benutzer 'user'.
Hinweis: Wir haben benutzt `127.0.0.1` Nehmen wir beispielsweise nur einen Remote-Host an; in Ihrem Fall handelt es sich beim Remote-Host höchstwahrscheinlich um ein entferntes Gerät und nicht um Ihr lokales Gerät.
Kommentare sind geschlossen.