Comment faire scp pour utiliser les adresses ipv6?

26

Lorsque j'essaie d'utiliser scp sur des adresses IPv6, j'obtiens ceci:

scp -6 osis@::1:/home/osis/test.file ./test.file
ssh: Could not resolve hostname : Name or service not known

Avec scp, tout ce que je reçois c'est

ssh: Could not resolve hostname : Name or service not known

en utilisant cela, je reçois une connexion dans ma boîte sans accroc

ssh osis@::1
Osis
la source

Réponses:

42

scpnécessite une syntaxe spéciale. L'adresse IPv6 doit être placée entre crochets, qui doivent ensuite être échappés. Donc, dans votre exemple, cela ressemblerait à ceci:

scp -6 osis@\[2001:db8:0:1\]:/home/osis/test.file ./test.file

Sinon, le premier deux-points ':' est considéré comme le séparateur entre le fichier et les parties d'adresse, ce qui entraînerait

ssh: Could not resolve hostname 2001: Address family for hostname not supported

Dans votre exemple avec l'ip, ::1cela est interprété comme si vous vouliez faire un ssh vers l'hôte ''(vide).

Martin Owens -doctormo-
la source
merci pour votre réponse, cette information manquait en quelque sorte à man scp; man ssh
Osis
2
Pensez à soumettre une page de manuel mise à jour, vous pouvez alors dire: J'ai aidé.
Martin Owens -doctormo-
2
Lorsque vous utilisez l'indicateur -6, vous pouvez simplement taper localhost au lieu de :: 1 (qui est l'adresse IPv6 pour localhost) pour éviter les crochets et donc tout besoin d'échapper quelque chose sur le shell:scp -6 osis@localhost:/home/osis/test.file ./test.file
freddyb
1
Vous n'êtes pas censé utiliser des adresses IPv6, vous êtes censé utiliser des noms DNS.
Anders
0

La commande ci-dessus n'a pas fonctionné pour moi, l'erreur que j'ai obtenue était due à une adresse v6 autorisée à prendre le chemin.

Pas besoin d'utiliser la barre oblique inverse "\". Selon l'exemple ci-dessus, la commande fonctionnera.

scp -6 osis@[2001:db8:0:1]:/home/osis/test.file ./test.file
Jobz
la source