通过命令行通过 SOCKS5 代理打开 putty ssh 连接

Posted

技术标签:

【中文标题】通过命令行通过 SOCKS5 代理打开 putty ssh 连接【英文标题】:Open putty ssh connection over SOCKS5 proxy via command line 【发布时间】:2016-08-20 07:48:19 【问题描述】:

我尝试。

putty.exe -P port -pw password username@host -nc proxyhost:proxyport

此命令不起作用,我认为它不正确。我尝试了很多此命令的变体,但 putty 用户手册不包含必要的信息。

我尝试连接到我的主机 throw putty UI,它工作正常。

对于 openSSH 类似的命令看起来

ssh -o "ProxyCommand=nc -x proxyhost:proxyport %h %p" -p port username@host

【问题讨论】:

【参考方案1】:

如果我是你,我会用 Putty 创建一个“保存的会话”并通过命令行启动它:

putty.exe -load session_name

通过 PuTTY 界面创建“保存的会话”比使用命令行更容易。而且您似乎已经通过 PuTTY 界面使用它。

【讨论】:

另外 putty 将其配置存储在注册表中,使用注册表操作不方便,因为您需要管理员权限。我发现已修补的putty 将其配置存储在文件中。【参考方案2】:

尽管这是一个旧线程,但我想加两分钱,因为我发现很难收集所有必要的信息,以便使用putty 命令通过 SOCKS-5 代理建立一个有效的ssh 连接行,这个线程出现在我的结果列表中。

TL;DR

目前无法(从 putty v0.74 开始)使用 puttyplink 作为命令行上的代理命令通过 SOCKS-5 代理路由 ssh 流量。对于 Windows,您必须使用 ncat 之类的替代方法,例如:

putty -p <targetport> -proxycmd "ncat.exe --proxy-type socks5 --proxy <proxyhost>:<proxyport> <targethost> <targetport>" <targethost>

详情

putty GUI 允许配置 SOCKS-5 代理,请参阅putty documentation。

正如answer 中正确说明的那样,BlakBat 可以使用-load 参数通过命令行调用此配置。

命令行参数-proxycmd 触发使用所谓的“本地”代理连接(参见putty documentation again):

> 3.8.3.24 -proxycmd: specify a **local** proxy command

本地代理命令是在本地机器上发出的命令,它将处理代理连接(请参阅the documentation about proxy types)。 ncat 就是这样一个命令,它能够与 SOCKS-5 代理进行交互。

最后,使用plink/putty作为代理命令是很有诱惑力的,以避免使用多个工具。 腻子claims 通过-nc 参数提供netcat 实用程序的替代方案,但是putty documentation 声明:

如果您希望本地代理命令与代理主机建立辅助 SSH 连接,然后通过该连接建立主连接,您可能需要 Plink 中的 -nc 命令行选项。

如果您尝试使用 -nc 参数打开 SOCKS-5 连接,您的 SOCKS 服务器日志可能会显示如下内容:

sockd[1234]: info: block(1): tcp/accept ]: 1.2.3.4.4711 1.2.3.5.1080: error after reading 1 byte in 0 seconds: unknown SOCKS version 83 in client request

这表明已尝试打开与 SOCKS-5 服务器的 SSH 会话。

因此,不幸的是,据我所知,您唯一的机会是使用putty 以及类似 netcat 的工具来使用 SOCKS-5 代理建立代理 SSH 连接。

【讨论】:

【参考方案3】:

简单,

putty -D 8080 <user_id>@<server_name> -pw <password>

【讨论】:

以上是关于通过命令行通过 SOCKS5 代理打开 putty ssh 连接的主要内容,如果未能解决你的问题,请参考以下文章

通过 SOCKS5 代理的 SSL 连接

无法通过 SOCKS5 代理服务器连接到互联网

JSch 是不是支持 SOCKS5 代理?

自己如何搭建socks5单窗口单ip?

通过 Network.Browser 的 Socks5 连接

3SourceTree通过PUTTY连接GitLab