通过 SSH 从一个终端到另一个终端的代理连接

通过 SSH 从一个终端到另一个终端的代理连接

我有一个私人代理,可以是 HTTP/SOCKS,并且我租用了一个用于网络托管的 Linode 服务器。

如果我使用像 putty 这样的程序通过 SSH 连接到网络服务器并运行,who它将显示当前会话和代理的 IP(因为我使用了 putty 设置了代理)

但是,如果我在家用电脑上(运行 Kali)并且通过 SSH 连接到网络服务器,它将按家庭 IP 显示。

基本上我要问的是,我如何从家里的 Linux 机器上进行 SSH 并让它通过代理来完成?我知道 ProxyCommand 但我似乎无法让它工作。

答案1

我自己设法解决了这个问题,花了一些时间和精力,所以我将我的解决方案发布在这里,希望它能在将来为某人节省一些时间。

ssh -o ProxyCommand="nc -X connect -x '<proxy ip>:<proxy port>' %h %p" root@<remote ip>

这是我现在通过代理通过 SSH 连接到我的服务器的命令。如果您希望使用相同的命令,您可能必须运行: apt-get install netcat-openbsd以便使用 -X 参数运行 NC,因为标准安装版本不包含它。

如果您的代理包含或需要身份验证,那么您可以使用 -P 选项提供带有 nc 的用户名。尝试连接时,这将提示您输入密码。虽然我无法让这部分工作,但它似乎不接受我的密码。我只是将代理设置为接受来自我的 IP 的任何连接,而无需进行身份验证。

希望这可以在将来节省某人的时间。

相关内容