如何无视跳板机?

2013-07-26 22:11:49 +08:00
 lequiet
公司连上远程游戏服需要先ssh登到跳板机,再在跳板机上ssh到远程,不能直连,如:
自己的系统(Mac OS) ===> 跳板机 ===>远程服务器

1. 跳板机和远程服务器是Linux,远程服务器有python 2.5(太旧了)
都有ssh、scp,但远程服务器不能用ssh、scp连到跳板机。跳板机不能用ssh和scp连到自己的
系统。也就是说只能正向不能反向。
2. 自己的系统有perl 5.1、python 2.7.5、ssh、scp等各种UNIX必备。
3. 跳板机能用的命令不多,能访问的目录只有自己的home目录。
4. 远程服务器有运维监控着,不能乱搞乱开监听端口开服务。

困难
====
现在的效率比较低的是,有很多的批量可以做的事,比如在N台服务器执行一样的一系列命令,
传文件N个这些服务器,从N个服务器拉特定的日志文件等,因为隔着一台跳板机,不能很轻易的
在自己的系统上搞个脚本自动执行这些重复繁琐的任务。

目前的解决方案
==========
secureCRT脚本。
用secureCRT的Session会话可以一键点击连到远程服务器,secureCRT脚本还可以调用这些预建好的Session自动打开Session然后做跑一些命令(并能自动输入密码)。
但是有时候用得很吃力,有时要打开远程服务器的Session去做,有时如果涉及多个远程的Session,为了不打开太多,就用跳板机的Session用ssh连各个服务器执行各个远程服务器的命令。
传文件也是,比如上传一个文件,secureCRT脚本要执行本地的scp传到跳板机,然后打开跳板机的Session,执行scp拷到远程服务器。

虽然已经封装好了很多函数,用起来比较方便了,但还是免不了打开这个那个Session,在这个那个Session里执行各种命令的状况。

所以想简化这个过程,“绕过”这个跳板机。在本地写脚本,能操作到远程的服务器并执行一些命令。(既然跳板机可以ssh命令到远程服务器执行一个命令就收工,那本地系统上可以用ssh命令到跳板机执行 [前面那段ssh到远程服务器执行命令的命令] ?但这貌似有点复杂,尤其是两次都要输密码,甚至执行的命令本身也要输密码并且又考虑安全的情况下)

寻找解决方法
==========
网上找到了fabric和(R)?ex, 前者是Python实现的,后者是perl实现的。但貌似两者只有在“直连"服务器时才能用,猜测也是在实现了ssh命令的连上某服务器执行命令的功能基础上做了封装。

貌似ssh有本地端口转发,但不太会用,不知能不能结合上fabric或者Rex,在不在跳板机和远程服务器作太多“手脚”的情况下,完成本地和远程方便的交互。
17396 次点击
所在节点    程序员
62 条回复
xderam
2015-08-15 01:49:07 +08:00
@lequiet 我要是运维的领导.估计早就开了那写脚本的运维了....基本的安全意识都没有...而且还为难开发..恩..
chinajik
2016-09-26 09:46:02 +08:00
@lequiet 什么特么我真好有这个需求...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/77090

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX