请debuggingSSH代理命令,不能通过PuTTY连接远程服务器与多跳SSH

我想复制以下~/.ssh/config从工作的Mac设置到Windows PuTTY。

 Host server01 HostName 11.22.333.444 Port 55555 DynamicForward 1080 User username RemoteForward 52698 localhost:52698 Host server02 HostName work-machine-name ProxyCommand ssh -q server01 nc work-machine-name 22 User username RemoteForward 52698 localhost:52698 

这是我在PuTTY上感觉不正确的当前代理命令:

plink -ssh 11.22.333.444 -P 55555 -l username -D 1080 -R 52698:127.0.0.1:52698 -nc %host:%port

细节:

我试图通过SSH代理在PuTTY上设置多跳,以便我可以使用Windows计算机上的远程Atom文本编辑器在远程计算机上执行操作。 Multihop意味着首先我必须SSH进入一个中间机器,然后login到最终机器。

在Mac上,我只需在Atom远程软件包上启动服务器,在terminal上运行ssh server02 ,为两个login名input密码以进入远程计算机,然后运行rmate filename以使远程文件自动显示在Mac Atom编辑器中这个ant 。

目前我正在尝试复制Windows PuTTY上的所有内容。 我在SSH教程上跟随了这个多跳,并参考了plink手册 。

首先,我将“C:\ Program Files(x86)\ PuTTY”永久地添加到PATH中。 然后,我对PuTTY进行了以下设置,试图精确地复制〜/ .ssh / config:

  • 会议 。 主机名: work-machine-name ,端口: 22
  • 连接 – >数据 。 自动login用户名: username
  • 连接 – >代理 。 代理types: Local ,代理主机名: 11.22.333.444 ,端口: 55555 ,Telnet命令或本地代理命令: plink -ssh 11.22.333.444 -P 55555 -l username -D 1080 -R 52698:127.0.0.1:52698 -nc %host:%port
  • 连接 – > SSH – >隧道 。 该窗口显示远程端口转发: R52698 localhost:52698

当我尝试运行一切时,我得到一个大黑屏。 我怀疑我的ProxyCommand设置不正确。

(顺便说一下,我发现X11是完全不必要的,通过我的Mac设置。)

试图进行debugging,我在cmd提示符下运行了ProxyCommand plink行:

 C:\Users\username>plink -ssh 11.22.333.444 -P 55555 -l username -D 1080 -R 52698:127.0.0.1:52698 -nc work-machine-name:22 username@11.22.333.444's password: SSH-2.0-OpenSSH_6.6.1 

input密码后,它会挂在那里。 在Mac上,它也会要求第二个密码,然后连接到远程工作机器。

看来你面临的问题是“标准”ssh工具和腻子之间的不兼容性

一些可能的解决方法是使用cygwin ssh, linux子系统for windows或mobaxterm (这是低音cygwin +一个更好的终端模拟器和嵌入式x11服务器)

所有这些工作与linux和mac相同的配置文件格式,所以你现有的配置应该工作

这些是一些想法,你的用例是非常特殊的,可能是更好的工具,以实现你所需要的,简化所有的代理,你可能可以使用设备之间的VPN,但专注于SSH方面,我会建议检查如何进行转发以及如何使用腻子测试(堡垒)设置。

转发

可能发生的情况是,在你的Windows客户端中,ssh密码没有被转发,

 ssh -A 

从男人:

-A启用身份验证代理连接的转发。 这也可以在每个主机的基础上在配置文件中指定。

在使用putty实现类似的东西时,你需要使用一些叫做Pageant东西。

Pageant是一个PuTTY认证代理。 它将您的私钥保存在内存中,这样,无论何时连接到服务器,都可以使用它们。 它消除了需要:

  • 如果使用多个帐户登录到服务器,请明确指定每个Linux用户帐户的相关密钥

  • 每次登录您的用户帐户时,输入密钥的密码; 而且你的密钥应该是密码保护,因为有一个不受保护的密钥是一样好隐藏你的密码在你的键盘!

要详细了解如何配置客户端,请遵循以下指南: https : //www.digitalocean.com/community/tutorials/how-to-use-page-to-streamline-ssh-key-authentication-with-putty

堡垒 – ssh隧道

查看本指南, https://blog.devolutions.net/2017/04/how-to-configure-an-ssh-tunnel-on-putty.html