Vous pouvez utiliser ~/.ssh/configpour spécifier les ports à utiliser pour les hôtes (et pour définir bien d'autres choses intéressantes; consultez la page de manuel man ssh_config):
# ~/.ssh/config
Host 67.12.21.133
Port 6774
Host 67.129.242.40
Port 6774
Pour ce faire, vous devez utiliser l'option -3scp, qui copie les fichiers via votre machine locale. Sinon, scp émet la commande scp via ssh sur le premier hôte, donc elle s'exécute
ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:
puis la configuration ~ / .ssh / du premier hôte distant (67.12.21.133) est utilisée à la place de votre hôte local.
Lorsque vous avez ~/.ssh/configcorrectement configuré votre , cela devrait fonctionner:
scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:
Bien sûr, vous pouvez également copier le contenu du fichier ~ / .ssh / config sur votre premier hôte distant, puis vous pouvez utiliser scp sans l' -3option, ce qui accélérera probablement le transfert.
Ou vous pouvez utiliser l'astuce que scp utilise et utiliser une telle ligne de commande:
ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:
(Notez la casse différente du paramètre de port pour ssh et scp: ssh -p 6774vs. scp -P 6774)
PS: J'ai obtenu ces informations du bugzilla d'OpenSSH où je les ai entrées comme bug: https://bugzilla.mindrot.org/show_bug.cgi?id=2020