我正在寻找一种通过已知 SSH 代理连接到任意 SSH 服务器的方法,而无需对这些目标服务器进行硬编码。
例如,假设我无法从当前位置访问 github.com,因为端口 22 已设置防火墙,但我可以连接到家中的 SSH 服务器,因为它通过非防火墙端口。配置 SSH 的最实用方法是什么,以便当我明确想要通过代理连接时,它会这样做?
我想要一个简单的解决方案;只需输入以下内容即可:
$ ssh [email protected]
例如“ssh[电子邮件保护]“。
答案1
添加类似这样的内容到你的.ssh/config
Host *%myproxy
ProxyCommand ssh [email protected] /bin/netcat -w 1 $(echo %h | cut -d%% -f1) 22
然后,您只需运行类似的命令即可ssh user@server-i-want-to-connect-to%myproxy
。您确实需要在服务器上安装 netcat 作为代理。