我想从一个工作的Mac设置复制以下~/.ssh/config
到一个Windows腻子。
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计算机上的remote Atom文本编辑器在远程计算机上工作。多跳意味着我必须首先SSH到中间计算机,然后登录到最终计算机。
在Mac上,我只需启动Atom远程包上的服务器,在终端上运行ssh server02
,输入两个登录密码以进入远程计算机,然后运行rmate filename
,让远程文件自动显示在Mac Atom编辑器上。
目前我正在尝试复制我的Windows PuTTY上的所有内容。我遵循this multihop on SSH tutorial并参考plink manual。
首先,我将“C:\Program Files(x86)\PuTTY”永久添加到PATH中,然后对PuTTY进行以下设置,尝试完全复制~/.ssh/config:
*会话。主机名:work-machine-name
,端口:22
*连接-〉数据.自动登录用户名:username
*连接-〉代理.代理类型: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 -〉隧道。远程端口转发窗口显示:x1米11米1x
尝试运行所有程序时出现大的空白黑屏。我怀疑ProxyCommand设置不正确。
(Btw通过我的Mac设置,我发现X11完全没有必要。)
为了调试,我在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上,它也会要求输入第二个密码,然后连接到远程工作机器。
4条答案
按热度按时间jogvjijk1#
看起来您所面临的问题是“标准”ssh工具和putty之间的不兼容性
一些可能的解决方法是使用cygwinssh、linux subsystem for windows或mobaxterm(基本上是cygwin +一个更好的终端仿真器和嵌入式x11服务器)
所有这些都使用与linux和mac相同的配置文件格式,因此您现有的配置应该可以正常工作
yzuktlbb2#
这是一对夫妇的想法,你的用例是非常特殊的,可能是更好的工具来实现你所需要的,以简化所有的代理,你可能会使用你的设备之间的VPN,但专注于SSH端,我建议检查如何转发正在进行,以及如何测试(堡垒)设置使用腻子.
转发
可能发生的情况是,在您的Windows客户端中,ssh密码没有被转发,这在这样做时是有效的:
从男人那里:
-A启用身份验证代理连接的转发。这也可以在配置文件中基于每个主机指定。
在Windows中,当使用putty来实现类似的功能时,您需要使用
Pageant
。Pageant是一个PuTTY身份验证代理。它将您的私钥保存在内存中,以便您在连接到服务器时可以使用它们。它消除了以下需要:
要了解有关如何配置客户端的详细信息,请遵循以下指南: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
tez616oj3#
我只是有一个类似的需求,但我的中间服务器不允许netcat。我想出的解决方案是使用
-W
标志的ssh(我使用OpenSSH),它可以用一个类似的ssh配置,你已经在mac上使用。在Windows上ssh配置的默认位置是-
C:\Users\$username$\.ssh\config
。关于配置的两点说明:
ProxyCommand
可能很难找到ssh.exe,因此这里最好使用绝对路径。如果您希望避免使用
ssh_config
并使用命令行来执行此操作,则可能需要用途:ssh -t username@11.22.33.4444 "ssh -t username@work-machine-name"
我希望它能在未来帮助到一些人。
klh5stk14#
假设我们希望通过
8.8.8.8
将ssh发送到172.16.0.21
两台主机中的登录名均为
john
私钥路径为
C:\users\john\.ssh\private.ppk
第一节第一节第一节第二节第一节
。