在 Linux 上,IPv6 地址可以在末尾有一个范围 ID,前面有一个百分号。例如:fe80::1%usb0
。请参阅为什么 IPv6 地址中有一个百分号‘%’?
我想在我的 ssh 配置中添加这样的条目,但如果我添加HostName fe80::1%usb0
到~/.ssh/config
,我会收到错误:
percent_expand: unknown key %u
答案1
答案2
如果你仍在尝试在 zsh 的命令行上执行代理命令,这里有一个如何使用 ipv6 地址的示例
ssh -v -o "ProxyCommand sush -W \[%h\]:%p your_jump_server" your_user@aabb:aabb:aabb:aabb:aabb:aabb:aabb:0000
看看参数h
现在有转义括号,但 ipv6 没有任何
答案3
除了转义百分号之外,可能还需要将 IPv6 地址括在括号中[]
。
当主机名由 ProxyCommand 使用时,这是必需的。
Host vmiab
HostName [fe80::1%%usb]
ProxyCommand ssh my_proxy_host -W %h:%p
或者您可以将主机包含[%h]
在 ProxyCommand 中(首选解决方案)
Host vmiab
HostName fe80::1%%usb
ProxyCommand ssh my_proxy_host -W [%h]:%p
最好在 ProxyCommand 中使用括号,因为在主机名中使用括号仅适用于 ProxyCommand,如果不使用则会失败。