在 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,否則會失敗。