假设我有以下设置:
ssh ssh
A ------> B ------> C
^ ^
using A's using B's
key key
.ssh/config
我正在尝试在主机中A
按如下方式配置它:
Host C
HostName C.com
IdentityFile path_to_key_1
ProxyCommand ssh -i path_to_key_2 B -W %h:%p
哪个标识文件和路径进入path_to_key_1
和path_to_key_2
?
例如, 是path_to_key_1
指 中的路径A
, 是path_to_key_2
指 中的路径B
?还是它们都应该是 中的路径A
?
答案1
从“A”执行ProxyCommand
,这将与 B 建立连接,从而仅创建隧道到“C”,然后“A”使用该命令连接到“C”。B 上不会打开任何 shell,也不会从 B 加载任何 ssh 密钥。
如果您需要仅存在于“B”上的身份验证密钥来向“C”进行身份验证,那么您将无法使用“ProxyCommand”。
答案2
您的.ssh/config
主机A
应如下所示:
Host B
HostName B.com
IdentityFile path_to_key_2
Host C
HostName C.com
IdentityFile path_to_key_1
ProxyCommand ssh B -W %h:%p
两个path_to_key
文件都必须存在于A
。
我在生产中使用类似的配置来访问 nagios nrpe 服务器。
编辑:更改主机C
配置,删除多余的-i
部分ProxyCommand ssh -i path_to_key_2 B -W %h:%p