Próbuję scpować plik ze zdalnego serwera na mój komputer lokalny. Dostępny jest tylko port 80.
Próbowałem:
scp -p 80 [email protected]:/root/file.txt .
ale dostał ten błąd: cp: 80: No such file or directory
Jak określić numer portu w poleceniu scp?
Odpowiedzi:
W przeciwieństwie do ssh, scp używa przełącznika P, aby ustawić port zamiast małych liter p:
Mały przełącznik p jest używany z scp do zachowania czasów i trybów.
Oto fragment strony podręcznika scp ze wszystkimi szczegółami dotyczącymi dwóch przełączników, a także wyjaśnienie, dlaczego dla scp wybrano wielkie litery P:
Zaktualizuj i odłóż na bok, aby odpowiedzieć na jeden z (mocno pozytywnych) komentarzy :
W odniesieniu do komentarza Abdulla na temat
scp
kolejności opcji sugeruje:... przeplata opcje i parametry.
getopt(1)
wyraźnie określa, że parametry muszą występować po opcjach i nie mogą być z nimi przeplatane:Ponieważ
-r
opcja wiersza poleceń nie przyjmuje żadnych dalszych argumentów,some_directory
jest „pierwszym parametrem nie będącym opcją, który nie jest argumentem opcji”. Dlatego, jak wyraźnie zaznaczono nagetopt(1)
stronie podręcznika , wszystkie kolejne argumenty wiersza poleceń następujące po nim (tj.-P 80 ...
) Są uważane za nie-opcje (i argumenty bez opcji).Tak więc w ten sposób
getopt(1)
widzi się przykład przedstawiony na końcu opcji i na początku parametrów wyznaczonych przez tekst bing na szaro:scp -P80 -r
some_directory -P 80 ...
Nie ma to nic wspólnego z
scp
zachowaniem, a wszystko z tym, jak standardowe aplikacje POSIX analizują opcje wiersza poleceń za pomocągetopt(3)
zestawu funkcji C.Aby uzyskać więcej informacji na temat zamawiania i przetwarzania wiersza poleceń, przeczytaj stronę
getopt(1)
podręcznika, używając:źródło
scp
wymaga poprawnej kolejności opcji:scp -r some_directory -P 80 ...
nie działa ----- alescp -P 80 -r some_directory ...
działa.-P
kolejność parametrów. Zasadniczo port musi przejść przed hostem. Zapobiega to dwuznaczności i pozwala na dwa-P
parametry, jeśli oba hosty są zdalne.Jedna dodatkowa wskazówka. Umieść opcję „-P” po komendzie scp, bez względu na to, czy komputer, na którym ssh-sisz, jest drugim (aka docelowym). Przykład:
źródło
Wiesz, co jest fajniejsze niż
-P
? nicJeśli używasz tego serwera więcej niż kilka razy, skonfiguruj / utwórz
~/.ssh/config
plik z wpisem:lub
Następnie możesz użyć:
scp [email protected]:/root/file.txt .
lub
scp short:/root/file.txt .
Możesz używać czegokolwiek w linii „Host” za pomocą ssh, scp, rsync, git i innych
Istnieje wiele opcji konfiguracji, których można użyć w plikach konfiguracyjnych, patrz:
man ssh_config
źródło
scp -3
zi na serwery z odbiornikami ssh na różnych portach.scp -3 -P 123 server1:/file -P 456 server2:/file
lub podobne alternatywy nie działałyby, scp założył ten sam port na obu serwerachUżywam innych portów niż standardowe i kopiuję pliki między plikami w następujący sposób:
Jest to tylko do sporadycznego użytku, jeśli powtarza się w oparciu o harmonogram, należy użyć do tego zadania rsync i cron.
źródło
aby użyć innego portu w poleceniu scp, użyj dużej litery P w ten sposób
ya ali
źródło
Pomoc SCP mówi nam, że port jest określony wielkimi literami P.
Mam nadzieję że to pomoże.
źródło
Kopiowanie pliku do hosta:
scp SourceFile remoteuser@remotehost:/directory/TargetFile
Kopiowanie pliku z hosta:
scp user@host:/directory/SourceFile TargetFile
Kopiowanie katalogu rekurencyjnie z hosta:
scp -r user@host:/directory/SourceFolder TargetFolder
UWAGA : Jeśli host używa portu innego niż port 22, możesz to określić za pomocą opcji -P:
scp -P 2222 user@host:/directory/SourceFile TargetFile
źródło
Można to osiągnąć, określając port za pomocą
-P
przełącznika:źródło
jeśli potrzebujesz skopiować plik lokalny na serwer (podaj port)
źródło
Mam nadzieję, że pomoże to komuś, kto szuka idealnej odpowiedzi
Kopiowanie folderu lub pliku z serwera ze zdefiniowanym portem na inny serwer lub komputer lokalny
źródło
Istnieje wiele odpowiedzi, ale powinieneś być w stanie to uprościć. Upewnij się, że wiesz, na którym porcie nasłuchuje SSH, i zdefiniuj go. Oto, co właśnie wykorzystałem do odtworzenia problemu.
scp -P 12222 plik. 7z uż[email protected]: / home / użytkownik / Pobieranie Udało się.
źródło