Comment puis-je utiliser la commande scp pour copier des fichiers entre deux serveurs distants à partir de mon PC local?
serveur distant 1: IP = 67.12.21.133 & port = 6774
serveur distant 2: IP = 67.129.242.40 & port = 6774
scp -rp -P 6774 [email protected]: /home/denny/testapp1.txt [email protected]:
Il donne une erreur après avoir donné le mot de passe 67.12.21.133,
ssh: connexion à l'hôte 67.129.242.40 port 22: connexion refusée
connexion perdue
Réponses:
Vous pouvez utiliser
~/.ssh/config
pour spécifier les ports à utiliser pour les hôtes (et pour définir bien d'autres choses intéressantes; consultez la page de manuelman ssh_config
):Pour ce faire, vous devez utiliser l'option
-3
scp, 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écutepuis 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/config
correctement configuré votre , cela devrait fonctionner: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'
-3
option, ce qui accélérera probablement le transfert.Ou vous pouvez utiliser l'astuce que scp utilise et utiliser une telle ligne de commande:
(Notez la casse différente du paramètre de port pour ssh et scp:
ssh -p 6774
vs.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
la source
Je n'ai trouvé aucune solution facile mais vous pouvez essayer d'utiliser sshfs de la manière suivante:
Une autre façon pourrait être d'utiliser ssh (en fait non testé avec succès):
Actuellement, je n'ai pas trouvé la bonne façon d'entrer les deux mots de passe. Il demande parfois les deux mots de passe mais n'accepte personne. Peut-être que si vous échangez les clés ssh entre les hôtes, cela fonctionne. Parce que vous n'avez pas besoin des mots de passe.
J'espère que ça aide? Thomas
la source
Selon cette page du blog de la Linux Academy, vous devez simplement utiliser l'
-P 6774
option juste avant le deuxième chemin distant:Chaque utilisation de l'
-P
indicateur s'applique uniquement à l'emplacement suivant sur la ligne de commande, pas à la commande entière. Tout emplacement qui ne comporte pas de-P
chemin entre lui et le chemin précédent (ou le nom de la commande [scp
]) prend par défaut le port standard (22).la source
-P: No such file or directory
.scp
celle référencée ici.Si vous devez transférer des données d'un serveur à un autre, utilisez la commande SCP. Faire cela
Appuyez simplement sur Ctrl+ Alt+ Tsur votre clavier pour ouvrir Terminal. Lorsqu'il s'ouvre, exécutez la commande ci-dessous.
Remarque: Le paramètre -P peut être utilisé si vous souhaitez mentionner le numéro de port.
la source