如何使SCP使用ipv6地址?


26

当我尝试在IPv6地址上使用scp时,出现以下信息:

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

有了scp,我得到的只是

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

使用这个我可以顺利进入我的盒子

ssh osis@::1

Answers:


42

scp需要一些特殊的语法。IPv6地址必须放在方括号中,然后必须将其转义。因此,在您的示例中,它看起来像这样:

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

否则,第一个冒号“:”被认为是文件和地址部分之间的分隔符,这将导致

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

在使用ip的示例中,::1它解释为好像要SSH到主机''(空白)。


谢谢您的回答,man scp; man ssh丢失了此信息
Osis

2
考虑提交更新的手册页,然后您可以说:我有所帮助。
Martin Owens -doctormo-

2
当使用-6标志时,您可以键入localhost而不是:: 1(这是localhost的IPv6地址),以避免括号,因此有必要在shell上进行转义:scp -6 osis@localhost:/home/osis/test.file ./test.file
freddyb 2011年

1
您不应使用IPv6地址,而应使用DNS名称。
安德斯

0

上面的命令对我不起作用,我收到的错误是由于允许使用v6地址作为路径。

无需使用反斜杠“ \”。按照上面的示例,下面的命令将起作用。

scp -6 osis@[2001:db8:0:1]:/home/osis/test.file ./test.file
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.