如何在 MacOs 中的 ssh-config 中配置 ProxyCommand 以支持 ipv6

如何在 MacOs 中的 ssh-config 中配置 ProxyCommand 以支持 ipv6

我正在尝试在 ssh-config 中配置 ProxyCommand。我的情况是 C Host 是 IPV6

Host tvm1test
  User nasir
  HostName 111b:c110:102:5177:0:2::3
  ProxyCommand [email protected] -W %[h]:%p

但 ssh 到 tvm1test 不成功。以下错误来自 -v 选项

debug1: Executing proxy command: exec [email protected] -W [111b:c110:102:5177:0:2::3]:22

zsh:1: no matches found: [111b:c110:102:5177:0:2::3]:22

我尝试了用和不用 [] 括起来的 %h,两种情况都无法连接。

但使用不带括号的 -J 选项可以工作。有人能告诉我如何让它工作吗?

答案1

你的配置文件应该如下所示

Host tvm1test
 User nasir
 HostName [111b:c110:102:5177:0:2::3]
 ProxyCommand [email protected] -W "%h":%p

这是由通配符问题(ipv6 中的 [])引起的,为了避免在 %h 上使用“”,代理命令会将其视为一个完整的块。

如果你想了解或理解它们是如何协同工作的,请使用

ssh tvm1test -vvv

答案2

请尝试以下

Host tvm1test
  User nasir
  HostName 111b:c110:102:5177:0:2::3
  ProxyCommand ssh [email protected] -W %[h]:%p

相关内容