Você pode usar ~/.ssh/config
para especificar as portas a serem usadas para os hosts (e para definir muitas outras coisas interessantes; consulte a página do manual man ssh_config
):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
Ao fazer isso, você deve usar a opção -3
scp, que copia os arquivos na sua máquina local. Caso contrário, o scp emitirá o comando scp via ssh no primeiro host, portanto, ele realmente será executado
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
e então o ~ / .ssh / config do primeiro host remoto (67.12.21.133) é usado no lugar do host local.
Quando você configurou o seu ~/.ssh/config
corretamente, isso deve funcionar:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
Obviamente, você também pode copiar o conteúdo do arquivo ~ / .ssh / config no seu primeiro host remoto e, em seguida, usar o scp sem a -3
opção, o que provavelmente acelerará a transferência.
Ou você pode usar o truque que o scp usa e usar essa linha de comando:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(Observe o caso diferente do parâmetro port para ssh e scp: ssh -p 6774
vs. scp -P 6774
)
PS: Eu obtive essas informações no bugzilla do OpenSSH, onde as inseri como um bug: https://bugzilla.mindrot.org/show_bug.cgi?id=2020