如何让scp使用ipv6地址?

Osi*_*sis 31 ipv6 scp

当我尝试通过 IPv6 地址使用 scp 时,我得到了这个:

scp -6 osis@::1:/home/osis/test.file ./test.file
ssh: Could not resolve hostname : Name or service not known
Run Code Online (Sandbox Code Playgroud)

使用 scp 我得到的只是

ssh: Could not resolve hostname : Name or service not known
Run Code Online (Sandbox Code Playgroud)

使用这个我可以顺利登录我的盒子

ssh osis@::1
Run Code Online (Sandbox Code Playgroud)

Mar*_*mo- 46

scp需要一些特殊的语法。IPv6 地址必须括在方括号中,然后必须对其进行转义。所以在你的例子中它看起来像这样:

scp -6 osis@\[2001:db8:0:1\]:/home/osis/test.file ./test.file
Run Code Online (Sandbox Code Playgroud)

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

ssh: Could not resolve hostname 2001: Address family for hostname not supported
Run Code Online (Sandbox Code Playgroud)

在您使用 ip 的示例中,::1它被解释为您想通过 ssh 连接到主机''(空白)。

  • 考虑提交更新的手册页,然后你可以说:我帮助了。 (2认同)
  • 使用 -6 标志时,您只需键入 localhost 而不是 ::1(这是 localhost 的 IPv6 地址)以避免括号,因此需要在 shell 上转义某些内容:`scp -6 osis@localhost:/家/osis/test.file ./test.file` (2认同)