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ę manuala man ssh_config
):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
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ła
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
a 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ć:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
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ń:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(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