Jak mogę użyć polecenia scp do skopiowania plików między dwoma zdalnymi serwerami z mojego lokalnego komputera?
zdalny serwer 1: IP = 67.12.21.133 i port = 6774
zdalny serwer 2: IP = 67.129.242.40 i port = 6774
scp -rp -P 6774 [email protected]: /home/denny/testapp1.txt [email protected]:
Daje błąd po podaniu hasła 67.12.21.133,
ssh: połącz z hostem 67.129.242.40 port 22: połączenie odrzucone
utracone połączenie
Odpowiedzi:
Możesz użyć,
~/.ssh/config
aby określić porty, które mają być używane dla hostów (i aby ustawić wiele innych fajnych rzeczy; sprawdź stronę manualaman ssh_config
):Robiąc to, musisz użyć opcji
-3
scp, która kopiuje pliki przez lokalny komputer. W przeciwnym razie scp wydaje polecenie scp za pośrednictwem ssh na pierwszym hoście, więc faktycznie działaa następnie ~ / .ssh / config pierwszego zdalnego hosta (67.12.21.133) jest używany zamiast lokalnego.
Po
~/.ssh/config
prawidłowym skonfigurowaniu powinno to działać:Oczywiście możesz również skopiować zawartość pliku ~ / .ssh / config na swój pierwszy zdalny host, a następnie możesz użyć scp bez
-3
opcji, co prawdopodobnie przyspieszy transfer.Lub możesz użyć sztuczki używanej przez scp i użyć takiego wiersza poleceń:
(Zwróć uwagę na inny przypadek parametru portu dla ssh i scp:
ssh -p 6774
vs.scp -P 6774
)PS: Otrzymałem te informacje z Bugzilli OpenSSH, w której wpisałem to jako błąd: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
źródło
Nie znalazłem łatwego rozwiązania, ale możesz spróbować użyć sshfs w następujący sposób:
Innym sposobem może być użycie ssh (faktycznie nieudane testowanie):
Obecnie nie znalazłem właściwego sposobu na wprowadzenie dwóch haseł. Czasami prosi o dwa hasła, ale nikogo nie akceptuje. Może po wymianie kluczy ssh między hostami to działa. Ponieważ nie potrzebujesz haseł.
Mam nadzieję, że to pomoże? Tomasz
źródło
Według tej strony na blogu Linux Academy po prostu musisz użyć tej
-P 6774
opcji tuż przed drugą zdalną ścieżką:Każde użycie
-P
flagi dotyczy tylko następnej lokalizacji w wierszu polecenia, a nie całego polecenia. Każda lokalizacja, która nie ma-P
między nią a poprzednią ścieżką (lub nazwą polecenia [scp
]), domyślnie ma port standardowy (22).źródło
-P: No such file or directory
.scp
niż ta, o której tu mowa.Jeśli chcesz przenieść dane z jednego serwera na inny, użyj polecenia SCP. Aby to zrobić
Wystarczy nacisnąć Ctrl+ Alt+ Tna klawiaturze, aby otworzyć Terminal. Po otwarciu uruchom poniższe polecenie.
Uwaga: Parametru -P można użyć, jeśli chcesz wspomnieć o numerze portu.
źródło