实现SCP和SSH代理连接

     日常运维工作中,经常有这样的操作:登录国内中控(一级)--->>>登录海外中控(二级)---->>>登录游戏服务器(三级)。

这样的操作非常繁琐,尤其是给目标服务器传文件时,稍不管理,中间登录的中控服务器就会挤压各种临时文件,使系统内文件分布混乱。
 
那么,有没有办法直接从一级服务器登录到三级服务器,或上传文件呢?
我们首先想到的办法是:配置网络代理或者写个脚本;脚本将文件上传到二级服务器,再通过session上传到三级服务器,完成后删除二级服务器文件缓存。
 
其实,SSH和SCP命令可以通过自身参数配置成代理连接,主要使用ssh的ProxyCommand参数,参数值格式“ssh 二级服务器IP nc %h %p”
从参数使用可以看出,内部主要使用nc命令在一级和三级服务器之间进行包转发。
 
注意:ssh key信任,要进行调整,因为代理的缘故,三级服务器接收到的是一级服务器请求,所以要将一级服务器的公钥,配置到三级服务器authorized_keys文件
 
配置实例:
    1. 服务器ip:
      1. 一级服务器:10.34.10.10
      2. 二级服务器:10.34.11.11
      3. 三级服务器:10.34.12.12
    2. 密钥信任关系:11信任10;12信任11;12信任10
    3. 实现:登录到一级服务器,通过ssh或scp,登录到三级服务器
    4. 拷贝数据:
      scp -o proxycommand="ssh 10.34.11.11 nc %h %p" ./testfile.txt 10.34.12.12:/root/
    5. 登录服务器:
      ssh -o proxycommand="ssh 10.34.11.11 nc %h %p" 10.34.12.12
posted @ 2012-10-31 18:12  ivistn  阅读(4310)  评论(0编辑  收藏  举报