这是场景
我正在尝试访问server3,但只有公共ssh访问服务器1.对于ssh到server3,我必须ssh到server1,ssh到server2,然后ssh到server3。
我希望的最终结果是,我可以WinSCP到localhost:8022,它会给我文件访问server3。
我正在尝试使用ssh隧道,但是通过我读过的所有教程和问题,对于这种情况似乎没有任何作用。
我在Windows上使用油灰。
任何建议将是真正有用的。谢谢。
在OpenSSH中,当我需要隧道时,我使用这个设置。这样我可以直接输入sftp server3,而不用担心首先手动启动server2和server1隧道。
# ~/.ssh/config # to connect to server2,tunnel through server1 Host server2 ProxyCommand ssh server1 nc %h %p # to connect to server3,tunnel through server2 Host server3 ProxyCommand ssh server2 nc %h %p
要更完整,我通常使用ssh -oCiphers = arcfour128,arcfour256,arcfour,blowfish-cbc -oControlMaster = no -oForwardX11 = no -oForwardAgent = no -oPermitLocalCommand = no -oClearAllForwardings = yes server1 nc%h%p作为ProxyCommand 。
>正在隧道传输的ssh连接已经加密,所以在外层使用较重的aes / 3des是没有意义的;弧鱼和河豚更快。
>其余的-o ****设置是偏执狂的,所以即使将具有真正奇怪设置的Host server1节添加到ssh_config,也没有任何内容。
同样,您可以配置PuTTY以使用代理命令plink -P%proxyport -pw%pass%user @%proxyhost nc%host%port,并相应地在连接/代理配置窗格中设置代理主机名/端口/用户/密码。 plink和其余的PuTTY套件(pscp,psftp等)加载PuTTY图形配置中保存的任何东西;希望WinSCP也是如此。 (我不使用它,所以我不太熟悉它的功能。)