Ви можете ~/.ssh/config
вказати порти, які використовуватимуть для хостів (і для встановлення багатьох інших приємних речей; перевірте сторінку man man ssh_config
):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
Роблячи це, ви повинні скористатися опцією -3
scp, яка копіює файли через вашу локальну машину. В іншому випадку scp видає команду scp через ssh на першому хості, тому вона фактично працює
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
а потім ~ / .ssh / config першого віддаленого хоста (67.12.21.133) використовується замість вашого локального.
Якщо ви ~/.ssh/config
правильно встановили , це має працювати:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
Звичайно, ви також можете скопіювати вміст файлу ~ / .ssh / config на свій перший віддалений хост, і тоді ви можете використовувати scp без -3
можливості, що, ймовірно, пришвидшить передачу.
Або ви можете використовувати фокус, який використовує scp, і використовувати такий командний рядок:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(Зверніть увагу на інший випадок параметра порту для ssh та scp: ssh -p 6774
vs. scp -P 6774
)
PS: Цю інформацію я отримав із баггілли OpenSSH, де я ввів це як помилку: https://bugzilla.mindrot.org/show_bug.cgi?id=2020