Jak zmusić scp do używania adresów IPv6?

26

Kiedy próbuję użyć scp przez adresy IPv6, otrzymuję to:

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

Z SCP wszystko, co kiedykolwiek dostaję, to

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

dzięki temu uzyskuję login do mojego pudełka bez żadnych problemów

ssh osis@::1
Osis
źródło

Odpowiedzi:

42

scpwymaga specjalnej składni. Adres IPv6 musi być ujęty w nawiasy kwadratowe, a następnie musi być poprzedzony znakiem ucieczki. W twoim przykładzie wyglądałoby to tak:

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

W przeciwnym razie pierwszy dwukropek „:” uważany jest za separator między plikiem a częściami adresowymi, które mogłyby spowodować

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

W twoim przykładzie z ip ::1jest to interpretowane tak, jakbyś chciał ssh do hosta ''(puste).

Martin Owens -doctormo-
źródło
dziękuję za odpowiedź, tej informacji jakoś brakowało w man scp; man ssh
Osis
2
Rozważ przesłanie zaktualizowanej strony podręcznika, a następnie możesz powiedzieć: Pomogłem.
Martin Owens -doctormo-
2
Gdy używasz flagi -6, możesz po prostu wpisać localhost zamiast :: 1 (który jest adresem IPv6 dla localhost), aby uniknąć nawiasów, a zatem jakiejkolwiek potrzeby ucieczki przed powłoką:scp -6 osis@localhost:/home/osis/test.file ./test.file
freddyb 30.04.2011
1
Nie należy używać adresów IPv6, należy używać nazw DNS.
Anders
0

Powyższe polecenie nie działało dla mnie, błąd, który dostałem, był spowodowany tym, że adres v6 był dozwolony dla ścieżki.

Nie trzeba używać ukośnika „\”. Jak w powyższym przykładzie poniżej polecenie będzie działać.

scp -6 osis@[2001:db8:0:1]:/home/osis/test.file ./test.file
Jobz
źródło