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

时间:2016-04-26 12:58:11

标签: windows ssh proxy putty

我尝试通过命令行在SOCKS5代理上打开putty ssh连接。

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

2 个答案:

答案 0 :(得分:1)

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

putty.exe -load session_name

通过PuTTY界面创建“已保存的会话”比使用命令行进行操作更容易。看起来你已经通过PuTTY界面完成了它。

答案 1 :(得分:1)

即使这是一个旧线程,我也想加上两分钱,因为我发现很难收集所有必要的信息以使用{{通过SOCKS-5代理建立有效的ssh连接1}}命令行,该线程显示在我的结果列表中。

TL; DR

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

plink

详细信息

putty -p <targetport> -proxycmd "ncat.exe --proxy-type socks5 --proxy <proxyhost>:<proxyport> <targethost> <targetport>" <targethost> GUI允许配置SOCKS-5代理,请参见putty documentation

answer中所述,BlakBat可以使用putty参数通过命令行调用此配置。

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

-proxycmd

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

最后,很容易使用> 3.8.3.24 -proxycmd: specify a **local** proxy command / plink作为代理命令,以避免使用多个工具。 腻子claims通过putty参数提供netcat实用程序的替代方案,但是putty documentation指出:

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

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

-nc

这表明试图打开到SOCKS-5服务器的SSH会话。

因此,不幸的是,据我所知,您唯一的机会是使用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 和类似netcat的工具一起使用SOCKS-5代理建立代理SSH连接。