首页 文章

请调试SSH Proxy Command,它无法通过PuTTY上的多跳SSH连接远程服务器

提问于
浏览
7

我想将以下 ~/.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

Details:

我正在尝试使用SSH代理在PuTTY上设置多跳,以便我可以在Windows计算机上使用remote Atom文本编辑器在远程计算机上工作 . 多跳意味着首先我必须SSH到中间机器然后登录到最终机器 .

在Mac上我只是在Atom远程包上启动服务器,在终端上运行 ssh server02 ,输入两个登录密码进入远程机器,并运行 rmate filename 让远程文件自动显示在Mac Atom编辑器上rmate .

目前我正在尝试复制Windows PuTTY上的所有内容 . 我跟着this multihop on SSH tutorial并提到了plink manual .

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

  • Session . 主机名: work-machine-name ,端口: 22

  • Connection -> Data . 自动登录用户名: username

  • Connection -> Proxy . 代理类型: 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

  • Connection -> SSH -> Tunnels . 窗口显示远程端口转发: R52698 localhost:52698

I get a big blank black screen when I try to run everything. I'm suspecting my ProxyCommand is not set up correctly.

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

尝试调试,我在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

输入密码后它会挂起 . 在Mac上,它也会要求输入第二个密码,然后连接到远程工作机 .

2 回答

  • 1

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

    一些可能的解决方法是使用cygwin ssh,linux subsystem for windowsmobaxterm(这是低音cygwin更好的终端模拟器和嵌入式x11服务器)

    所有这些都使用与linux和mac相同的配置文件格式,因此您现有的配置应该可以工作

  • 2

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

    转发

    可能发生的事情是,在您的Windows客户端中,ssh密码未被转发,这在以下情况下有效:

    ssh -A
    

    来自男人:

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

    在windows中使用putty来实现类似的东西你需要使用调用 Pageant .

    Pageant是PuTTY身份验证代理 . 它将您的私钥保存在内存中,以便在连接到服务器时可以使用它们 . 它消除了以下需要:

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

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

    要了解有关如何配置客户端的更多信息,请遵循以下指南:https://www.digitalocean.com/community/tutorials/how-to-use-pageant-to-streamline-ssh-key-authentication-with-putty

    堡垒 - ssh隧道

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

相关问题