通过 Socks 代理进行 SSH 操作,无需用户名或密码

通过 Socks 代理进行 SSH 操作,无需用户名或密码

我有一个 SOCKS 代理服务器列表地点。

我读过有关创建动态隧道的内容,ssh -D说实话我已经尝试过。不幸的是,由于某种原因,我无法连接到列表中的任何代理服务器。

OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k我在 BackTrack 上使用。如果有人愿意提供帮助或指出对我有用的分步指南,我将非常感激。

我想要实现的是通过 Machine to MachineA上的 ssh 隧道从 Machine 连接。假设机器上的 sshd正在侦听端口 21,机器代理正在侦听端口 1080。BCCB

附加问题:

我还想创建一个到socks代理服务器的隧道,这将允许我在firefox中设置localhost:8080作为代理,并允许我B使用机器BIP地址从机器浏览网络。

答案1

在我看来,您需要一个 socks 客户端,或者一个能够理解 socks 的 ssh 客户端。-D是让 ssh 成为 socks 服务器/代理。

tsocks您可以在或其他 SOCKS 包装器下使用 ssh 。或者将 ssh 的 ProxyCommand 与socat或结合使用nc -X

ssh -o ProxyCommand='socat - socks:B:%h:21,socksport=1080' C

要拥有使用 SOCKS 服务器发送 HTTP 请求的 HTTP 代理,您可以tinyproxy在 tsocks 下运行一个小型代理(如 )。

请注意,并非所有应用程序都能很好地与tsocks依赖于 的或任何类似的包装器配合使用LD_PRELOAD,但tinyproxy确实如此。

另请注意,您可能会遇到域名解析问题(取决于您是否希望在隧道的任一侧解析名称)。tsocks不适用于远程解析名称。它可以工作的唯一方法是当您的名称服务器(在/etc/resolv.conf)可以从另一端访问并且您使用 TCP 进行域解析时(tsocks可以尝试强制执行,但根据我的经验通常会失败)。socksifyfromdante的 SOCKS 客户端/服务器在这种情况下工作得更好,因为它还包装了解析函数,并且还可以使用一个很好的小技巧来伪造名称解析,以便可以使用 SOCKS 按名称连接。

相关内容