我正在尝试设置与内部服务器的 SSH 连接,该连接仅当通过公共 SSH 服务器代理时才可用,如下所示 我 > 网关 SSH 服务器 > 内部 SSH 服务器
在 Linux 上我可以成功使用以下命令:ssh[电子邮件保护]–iMy_SSH_Private.ssh –o'ProxyCommand=ssh[电子邮件保护]数控 %h %p'
请注意,两个服务器都需要提供 SSH 密钥
我想在 Putty 上复制此操作,并认为应该可以通过将 Putty 的代理设置为使用 plink 来实现,但这似乎挂了。我的示例 plink 代理命令是:plink.exe[电子邮件保护]-数控[电子邮件保护]:2223 -i My_SSH_Private.ppk
我究竟做错了什么?
答案1
我发现最好的方法与你的方法类似,但你需要运行 pageant。将你的密钥添加到其中,然后将本地代理命令设置为:
plink -agent -l %user %proxyhost -nc %host:%port
这将告诉 plink 使用 pageant 密钥对两个主机进行身份验证。我发现如果我忘记先加载我的密钥,它就会挂起连接到代理箱。
PS,我意识到这已经很老了,但以防万一有人在研究另一个 plink 问题时像我一样遇到它。
答案2
我认为 nc(无命令?)选项可以创建隧道,而无需启动登录 shell。尝试
plink.exe -i My_SSH_Private.ppk [email protected]:2223 "ssh [email protected]"
在类似您的情况中,我只需 ssh 到第一台服务器,然后从那里 ssh 到目标服务器。我想,这并不优雅。但随后我使用 Pageant 并在 Putty 中启用代理转发(设置->连接->SSH->身份验证->允许代理转发),这样网关服务器上的 shell 就可以通过转发的代理进程访问我的(本地)私钥。这使得 ssh 服务器跳跃非常顺畅。