当前位置:  开发笔记 > 前端 > 正文

ssh隧道链

如何解决《ssh隧道链》经验,为你挑选了3个好方法。

这是场景

我试图让scp访问server3,但是只有公共ssh访问服务器1.要ssh到server3,我必须ssh到server1,ssh到server2,然后ssh到server3.

我希望最终的结果是我可以将WinSCP发送到localhost:8022并且它将为我提供对server3的文件访问权限.

我正在尝试使用ssh隧道,但通过我读过的所有教程和问题似乎都没有适用于这种情况.

我在Windows上使用putty.

任何建议都会有所帮助.谢谢.



1> ephemient..:

在OpenSSH中,我在需要隧道时使用此设置.这允许我直接键入sftp server3而不必担心首先手动启动server2server1隧道.

# ~/.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外层是没有意义的; arcfour并且blowfish更快.

其余的-o****设置都没有偏执,所以即使Host server1添加了真正奇怪设置的节也没有什么破坏ssh_config.

同样,您可以配置PuTTY以使用proxy命令plink -P %proxyport -pw %pass %user@%proxyhost nc %host %port,并相应地在Connection/Proxy配置窗格中设置代理主机名/端口/用户/密码. plink并且PuTTY套件的其余部分(pscp,psftp等)加载以PuTTY图形配置保存的任何内容; 希望WinSCP也能做到.(我不使用它,所以我不太熟悉它的功能.)



2> Wesley..:

想到的第一个解决方案是将一个本地端口连接到每个服务器.由于SSH使用端口22,我们将使用每个SSH连接将本地端口隧道连接到下一个服务器的端口22.

当您打开PuTTY时,您会遇到PuTTY Configuration对话框.您需要编辑的两个类别是"会话"和"连接→SSH→隧道".

    打开PuTTY的副本.使用这些设置:

    连接到主机

    主机名: server1

    港口:22

    隧道一个港口

    本地模式

    源端口: 15500

    目的地:( server2:22安全shell端口)

    按 按

    现在,每次连接到本地计算机上的端口15500时,您的连接都将通过隧道连接到server2上的端口22.

    打开PuTTY的副本.使用这些设置:

    连接到主机

    主机名: localhost

    港口:15500

    隧道一个港口

    本地模式

    源端口: 15501

    目的地:( server3:22安全shell端口)

    打开PuTTY的副本.使用这些设置:

    连接到主机

    主机名: localhost

    港口:15501

    隧道一个港口

    本地模式

    源端口: 15502

    目的地:( server3:22安全shell端口)

    使用WinSCP连接到localhost端口15502.您的连接将通过隧道传输,就像您server3直接连接一样.

请在评论中告诉我这是否适合您.祝好运!



3> 小智..:

此方法类似于在打开的ssh配置文件中使用proxycommand的方式。

此方法的先决条件是所有中间(代理)主机都必须将Pageant与公用密钥身份验证一起使用,否则您将得到一个闪烁的光标,而没有其他结果。要了解有关Pageant,PuTTYgen和公共密钥的更多信息,请参见:
http : //the.earth.li/~sgtatham/putty/0.62/htmldoc/Chapter8.html#pubkey
http://the.earth.li/~sgtatham/putty /0.62/htmldoc/Chapter9.html#pageant

我们有四台按此顺序访问的机器
PuttyPC-> server01-> server02-> server03

对于server01,我们将Putty保存的会话保存为:
主窗口:user1@server01//端口22// SSH
将会话保存为server01

对于server02,我们将Putty保存的会话保存为:
主窗口:user2@server02//端口22// SSH
代理配置窗口:输入local// proxy命令plink -load server01 -nc %host:%port
将此会话另存为server02

对于server03,我们将Putty保存的会话保存为:
主窗口:user3@pc3//端口22// SSH
代理配置面板:类型local//代理命令plink -load server02 -nc %host:%port
将此会话另存为server03

这意味着已保存的server03会话将调用已保存的server02会话,而已保存的server02会话将调用server01会话。

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有