lat*_*atz 5 networking linux ssh openssh
我正在考虑拥有一个 SSH 代理服务器或其他称为跳转主机的想法,我将用它来连接到我所有的“隐藏”服务器。所以基本上我有以下设置。请注意,我在这里故意使用 IP 地址而不是主机名。
<client> ---> <proxy_ssh> ---> <192.168.0.*>
Run Code Online (Sandbox Code Playgroud)
我的意图是它应该对用户尽可能透明。因此理想情况下用户只需执行以下命令
# ssh user@192.168.0.10
Run Code Online (Sandbox Code Playgroud)
为了使其正常工作,我创建了以下.ssh/config.
Host *
ServerAliveInterval 240
Compression yes
ForwardAgent yes
ForwardX11 yes
Host 192.168.0.*
ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p
Run Code Online (Sandbox Code Playgroud)
这很好用。但如果我的服务器后面有更多的网络可以使用,那就有点乏味了proxy_ssh。所以我尝试简单地将其添加ProxyCommand到Host *不起作用的部分。
我想让这对最终用户更加透明,并将 ssh 配置更改为以下内容,只是省略了特定的主机定义。
Host *
ServerAliveInterval 240
Compression yes
ForwardAgent yes
ForwardX11 yes
ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p
Run Code Online (Sandbox Code Playgroud)
这导致我无法再连接到终端主机。连接只是超时了!
因此,我的问题是,有什么方法可以让我的所有 SSH 连接都使用主机,从而使其更加透明proxy_ssh?
上面的示例将使其递归,每个连接都将使用代理命令,这又是带有另一个代理命令的 ssh。DOS 代理的好方法。
您应该从列表中排除代理,使用-F /dev/null忽略代理命令的配置或仅忽略代理 ssh 的代理命令:
ProxyCommand ssh -oProxyCommand=none my_user@proxy_ssh.example.com netcat -w 120 %h %p
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15136 次 |
| 最近记录: |