相当于 OpenSSH ProxyCommand 的 PuTTY 配置

Posted

技术标签:

【中文标题】相当于 OpenSSH ProxyCommand 的 PuTTY 配置【英文标题】:PuTTY configuration equivalent to OpenSSH ProxyCommand 【发布时间】:2020-11-13 15:10:05 【问题描述】:

我只是想使用 PuTTY 与我的服务器建立 SSH 连接。 这些服务器只允许来自另一个特定服务器(下面示例中的“MySshProxyingServer”)的传入 SSH 连接。

使用 Linux,ssh -W 命令没有问题。

在 PuTTY 中,我找不到创建此类连接的选项。

Linux下的例子(~/.ssh/config):

Host MyHostToConnectTo
    Hostname xx.xx.xx.xx
    User root
    Identityfile ~/.ssh/id_rsa
    ProxyCommand ssh MySshProxyServer -W %h:%p

有人知道如何在 PuTTY 中使用这样的配置吗?

【问题讨论】:

【参考方案1】:

PuTTY 中的等价物是“本地代理命令”。您可以将plink.exe-nc switch 一起使用,而不是将ssh-W 开关一起使用:

“本地代理命令”是:

plink.exe %user@%proxyhost -P %proxyport -nc %host:%port

另一种方法是首先使用另一个 PuTTY(或 Plink)实例通过“MySshProxyServer”打开隧道。

参见示例:

How to create SSH tunnel using PuTTY in Windows? 我的指南tunneling SFTP/SCP session。它适用于 WinSCP,但只需在 Connecting through the tunnel 部分使用 PuTTY 而不是 WinSCP。

【讨论】:

如果您使用密钥身份验证,您可能会发现这一行很有用:plink.exe %user@%proxyhost -ssh -i c:\keys\my_key.ppk -nc %host:%port【参考方案2】:

以防万一您仍然为您的 jumphost 使用密码是一个示例。

plink.exe %user@%proxyhost -pw %pass -P %proxyport -nc %host:%port

【讨论】:

这可能是对我的回答有用的评论。但这不是问题的独立答案。 这个答案正是我想要的!我一直在尝试使用我能找到的每个配置示例来完成这项工作,但我一直收到“拒绝访问”。顺便说一句,启用“在终端窗口中打印代理诊断”帮助我意识到这是一个问题。添加-pw 设置后,我终于能够进入。所以谢谢!

以上是关于相当于 OpenSSH ProxyCommand 的 PuTTY 配置的主要内容,如果未能解决你的问题,请参考以下文章

流量代理-工具1Mac自带软件OpenSSH的使用

sh 使用ProxyCommand的ssh

sh 使用ProxyCommand的scp

通过 Python 脚本调用 ProxyCommand 时“没有这样的文件或目录”

SSH ProxyCommand 的问题

Git,SSH和ProxyCommand