Ich versuche, eine Datei von einem Remote-Server auf meinen lokalen Computer zu übertragen. Nur Port 80 ist zugänglich.
Ich habe es versucht:
scp -p 80 [email protected]:/root/file.txt .
habe aber diesen Fehler bekommen: cp: 80: No such file or directory
Wie gebe ich die Portnummer in einem scp-Befehl an?
Antworten:
Im Gegensatz zu ssh verwendet scp den P-Schalter in Großbuchstaben, um den Port anstelle des p in Kleinbuchstaben festzulegen:
Der p-Schalter in Kleinbuchstaben wird mit scp verwendet, um Zeiten und Modi beizubehalten.
Hier ist ein Auszug aus der Manpage von scp mit allen Details zu den beiden Schaltern sowie einer Erklärung, warum Großbuchstabe P für scp gewählt wurde:
Aktualisieren und beiseite, um einen der (stark positiv bewerteten) Kommentare anzusprechen :
In Bezug auf Abdulls Kommentar zur
scp
Optionsreihenfolge schlägt er vor:..., setzt Optionen und Parameter ein.
getopt(1)
definiert klar, dass Parameter nach Optionen kommen und nicht mit ihnen durchsetzt werden dürfen:Da die
-r
Befehlszeilenoption keine weiteren Argumente akzeptiert,some_directory
ist sie "der erste Nichtoptionsparameter, der kein Optionsargument ist". Wie in dergetopt(1)
Manpage klar dargelegt , werden daher alle nachfolgenden Befehlszeilenargumente, die darauf folgen (dh-P 80 ...
), als Nichtoptionen (und Nichtoptionsargumente) angenommen.Auf diese Weise wird
getopt(1)
das Beispiel mit dem Ende der Optionen und dem Anfang der Parameter dargestellt, die durch den nachfolgenden Text in Grau abgegrenzt werden:scp -P80 -r
some_directory -P 80 ...
Dies hat nichts mit dem
scp
Verhalten zu tun und alles damit, wie POSIX-Standardanwendungen Befehlszeilenoptionen mithilfe dergetopt(3)
C-Funktionen analysieren .Weitere Informationen zur Bestellung und Verarbeitung von Befehlszeilen finden Sie in der
getopt(1)
Manpage unter:quelle
scp
verlangt die richtige Reihenfolge der Optionen:scp -r some_directory -P 80 ...
funktioniert nicht ----- aberscp -P 80 -r some_directory ...
funktioniert.-P
Parameter Ordnung. Grundsätzlich muss der Port vor dem Host gehen. Dies verhindert Mehrdeutigkeiten und ermöglicht zwei-P
Parameter, wenn beide Hosts remote sind.Ein zusätzlicher Hinweis. Platzieren Sie die Option '-P' nach dem Befehl scp, unabhängig davon, ob es sich bei dem Computer, auf dem Sie sich befinden, um den zweiten handelt (auch als Ziel bezeichnet). Beispiel:
quelle
Weißt du was cooler ist als
-P
? nichtsWenn Sie diesen Server mehrmals verwenden, richten Sie eine
~/.ssh/config
Datei mit einem Eintrag wie dem folgenden ein:oder
Dann können Sie verwenden:
scp [email protected]:/root/file.txt .
oder
scp short:/root/file.txt .
Sie können alles auf der "Host" -Linie mit ssh, scp, rsync, git & more verwenden
Es gibt VIELE Konfigurationsoptionen, die Sie in Konfigurationsdateien verwenden können, siehe:
man ssh_config
quelle
scp -3
von und zu Servern mit SSH-Listenern an verschiedenen Ports ermöglicht.scp -3 -P 123 server1:/file -P 456 server2:/file
oder ähnliche Alternativen würden nicht funktionieren, scp nahm den gleichen Port auf beiden Servern anIch verwende andere Ports als Standard und kopiere Dateien zwischen Dateien wie folgt:
Dies ist nur für den gelegentlichen Gebrauch vorgesehen. Wenn es sich basierend auf einem Zeitplan wiederholt, sollten Sie dazu rsync und cron job verwenden.
quelle
Um einen anderen Port für den Befehl scp zu verwenden, verwenden Sie das Großbuchstaben P wie folgt
ya ali
quelle
Die scp-Hilfe teilt uns mit, dass der Port in Großbuchstaben P angegeben ist.
Hoffe das hilft.
quelle
Kopieren der Datei auf den Host:
scp SourceFile remoteuser@remotehost:/directory/TargetFile
Kopieren der Datei vom Host:
scp user@host:/directory/SourceFile TargetFile
Rekursives Kopieren des Verzeichnisses vom Host:
scp -r user@host:/directory/SourceFolder TargetFolder
HINWEIS : Wenn der Host einen anderen Port als Port 22 verwendet, können Sie ihn mit der Option -P angeben:
scp -P 2222 user@host:/directory/SourceFile TargetFile
quelle
Dies kann erreicht werden, indem der Port über den
-P
Switch angegeben wird:quelle
Wenn Sie eine lokale Datei auf den Server kopieren müssen (Port angeben)
quelle
Hoffe, dies wird jemandem helfen, der nach einer perfekten Antwort sucht
Kopieren eines Ordners oder einer Datei von einem Server mit einem definierten Port auf einen anderen Server oder lokalen Computer
quelle
Es gibt viele Antworten, aber Sie sollten es einfach halten können. Stellen Sie sicher , dass Sie wissen, welcher Port SSH abhört, und definieren Sie ihn. Hier ist, was ich gerade verwendet habe, um Ihr Problem zu replizieren.
scp -P 12222 file.7z [email protected]: / home / user / Downloads Es hat gut geklappt.
quelle