V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lequiet
V2EX  ›  程序员

如何无视跳板机?

  •  
  •   lequiet · 2013-07-26 22:11:49 +08:00 · 17291 次点击
    这是一个创建于 4139 天前的主题,其中的信息可能已经有所发展或是发生改变。
    公司连上远程游戏服需要先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,在不在跳板机和远程服务器作太多“手脚”的情况下,完成本地和远程方便的交互。
    第 1 条附言  ·  2013-07-27 10:32:15 +08:00
    忘了说了~,自己机子属内网机,原则上不能上网。

    跳板机的权限也只限于访问那些远程服务器。

    至于想用rzsz传文件的话,在远程服务器、跳板机被禁用了,而且在曾经能用时也发现,
    rz,sz在连接慢时,比如国外的服务器,传文件传不完整。
    62 条回复    2016-09-26 09:46:02 +08:00
    phuslu
        1
    phuslu  
       2013-07-26 22:17:28 +08:00   ❤️ 1
    socat
    pubby
        2
    pubby  
       2013-07-26 22:33:14 +08:00   ❤️ 1
    楼主描述太长了,可能理解不太精确。

    3个方案:
    1. 能否在跳板机上映射一个端口,或者为每个远程服务器分别映射一批端口
    比如 10022 -> server1:22
    10122 -> server2:22
    本地只要连跳板机的 10022端口就相当于连到了server1的22端口

    2. 本地用ssh直接映射端口到本地
    ssh -fN -L 10022:<server1>:<server1_port> -p <跳板port> <跳板user>@<跳板ip>
    ssh -fN -L 10122:<server2>:<server2_port> -p <跳板port> <跳板user>@<跳板ip>

    然后 ssh -p 10022 <server1_user>@localhost 就能连到server1
    ssh -p 10122 <server2_user>@localhost 就能连到server2

    3. 跳板机上架设socks5 proxy服务器(即使有密码也不太安全)
    ssh -o "ProxyCommand nc -x <跳板ip>:1080 %h %p" <server1_user>@<server1_ip>
    lequiet
        3
    lequiet  
    OP
       2013-07-26 23:03:11 +08:00
    @pubby 是啊,对网络这块不太熟。
    3方案明显是不行的,跳板机曾经只能用ssh和scp,连自己目录的东西都不能删,只是最近才开放了点但估计架个服务器是不太现实的了~也不符合不动跳板机的原则。
    1方案是否需要被映射的端口常开?能不能只是为了某次特定的任务开一下,然后执行完就关掉?
    2方案看着可行噢,就是想知道这个本地端口映射,在跳板机上与两边的是做怎样的连接的?是不是跟普通的ssh长连接没什么区别,然后不可能被运维监控到?
    lequiet
        4
    lequiet  
    OP
       2013-07-26 23:05:04 +08:00
    @phuslu 查了一下,貌似很高端啊~
    reusFork
        5
    reusFork  
       2013-07-26 23:07:44 +08:00
    用expect可以自动输入密码,这样最后那个方法就可行了
    reusFork
        6
    reusFork  
       2013-07-26 23:10:58 +08:00
    http://stackoverflow.com/questions/4780893/use-expect-in-bash-script-to-provide-password-to-ssh-command
    这里有几个方法,不止expect
    不过跳板机应该装不了软件吧,所以还是expect现实
    pubby
        7
    pubby  
       2013-07-26 23:26:04 +08:00
    @lequiet
    方案2就是
    本地用ssh连跳板,并且做了一系列端口映射规则,可以理解为一个通道
    localhost:10022 ---> server1:server1_port

    于是在你看来,连localhost:10022就相当于连上 server1:server1_port了

    这个方法我经常用来rsync同步一些文件到机房内网的某台服务器。


    方案3我也经常用,用来连接一些美国的vps,因为美国的vps多数比较慢,但是还是能找一台比较快(ping <200ms)的做proxy,再通过它连其他vps就快很多了。
    pubby
        8
    pubby  
       2013-07-26 23:27:56 +08:00
    至于输密码,服务器太多,输密码太痛苦了,用证书吧。
    lequiet
        9
    lequiet  
    OP
       2013-07-26 23:29:10 +08:00
    @reusFork 3Q. 关键是expect在哪执行? 本地和跳板机都有expect但远程服务器没有。在本地执行的话,expect要写跳板机密码、远程服务器密码、远程主机执行某些命令所需的密码,有点烦,不过应该用熟了可以克服~
    pubby
        10
    pubby  
       2013-07-26 23:29:57 +08:00
    @lequiet
    方案3其实也是可行的,既然跳板机ssh能用,那就能利用ssh在本地映射一个socks5代理端口,把跳板机当代理用的。
    pubby
        11
    pubby  
       2013-07-26 23:31:53 +08:00
    就像这样:
    ssh -fN -D0.0.0.0:1080 -p <跳板port> <跳板user>@<跳板ip>

    ok, localhost:1080就是一个socks5代理了,数据自动走跳板机出去的
    lequiet
        12
    lequiet  
    OP
       2013-07-26 23:34:45 +08:00
    @pubby 关键是我们只是客户端开发+服务端少量开发。不是运维不能想怎么搞怎么搞,也不能保证我们配在服务器上的配置运维同学会帮你留着,所以才想一些能在本地放的脚本和配置,在现有的环境下去自动化地操作远程服务器完成我们自己需要经常操作的东西,但不需要像运维那么正式繁琐,只想找些简单快捷clean的方案。
    reusFork
        13
    reusFork  
       2013-07-26 23:34:53 +08:00
    @lequiet expect都是在本地执行,跳板机没有也没问题,它相当是模拟了你的键盘输入
    reusFork
        14
    reusFork  
       2013-07-26 23:37:24 +08:00
    http://blog.51yip.com/linux/1462.html 看下这个,看能不能用上吧
    pubby
        15
    pubby  
       2013-07-26 23:38:00 +08:00
    @lequiet 除了证书需要在服务器导入(或者用reusFork的方法看能不能简化输入),方案2、3都不需要去改跳板或者服务器的啊
    lequiet
        16
    lequiet  
    OP
       2013-07-26 23:44:05 +08:00
    @pubby 3没听太懂,2我觉得可以去试下,只是自己不太理解这个通道是怎么样的细节~
    lequiet
        17
    lequiet  
    OP
       2013-07-26 23:54:28 +08:00
    @reusFork 嗯谢谢,那篇文章可以去看下。expect我的secureCRT脚本就有调用到,深入研究下的话可以达到想要的目的,只是感觉过个跳板机写起来有点烦。所以想采用 @pubby 的方式把原来两层的ssh变成一层,然后用fabric或者(R)?ex这类用python/perl脚本的运维自动化工具去实现那些重复性任务,因为用shell实在是太痛苦了作为一门编程语言的话。
    pubby
        18
    pubby  
       2013-07-27 00:18:52 +08:00
    @lequiet 比如一个rsync同步脚本

    #!/bin/sh
    MAPPED=`sockstat -4l|grep :10022`

    if [ "X$MAPPED" = X ] ; then

    echo "Frist ,we need map remote ssh port to local via ssh,input password:"
    #跳板机passwd
    ssh -fN -L 10022:<server_ip>:<server_port> -p <跳板ssh port> <跳板user>@<跳板ip>
    fi

    echo "Start sync ...."

    rsync -ave "ssh -p 10022" /local-data-path/ <server_user>@127.0.0.1:/remote-data-path/

    # 需要输入服务器密码
    summic
        19
    summic  
       2013-07-27 00:22:40 +08:00 via iPhone
    lz安全第一,效率可以一起探讨,很多东西大家都有很好的解决方案,或者可以分机63979找我交流
    lequiet
        20
    lequiet  
    OP
       2013-07-27 00:38:05 +08:00
    @pubby 确实可以两层ssh变一层了的感觉,假如要输密码的,那第一个ssh -fN那个,需要输两次密码吗?如果是,那后面那个rsync用到的ssh -p 10022,还需要输密码不?执行完某个任务(比如你的rsync同步任务)需要不需要把第一步建立的ssh通道干掉?

    如果需要密码,“ssh -fN -L 10022:<server_ip>:<server_port> -p <跳板ssh port> <跳板user>@<跳板ip> ” 可以用expect来自动输(安全再考虑)
    lequiet
        21
    lequiet  
    OP
       2013-07-27 00:38:51 +08:00
    @summic 分机号??!! 对于安全方面,你有什么好的建议或者注意事项指导一下?
    summic
        22
    summic  
       2013-07-27 00:50:03 +08:00 via iPhone
    @lequiet 兄台不是跟张小龙混饭吃的?那我判断错了。这个安全体系的你要绕过去了不等于白做了么?你确信你做的比他们更安全更有效率么?脚本的分发和控制其实可以用私有协议加内部系统来解决
    panzhc
        23
    panzhc  
       2013-07-27 09:40:16 +08:00
    网络连接用SSH代理,把跳板机当作代理;传文件用rzsz,隔多少层ssh都可以直接传文件。
    lequiet
        24
    lequiet  
    OP
       2013-07-27 10:26:34 +08:00
    @summic 作为一个开发者,只是想让日常任务更自动化不太浪费时间在敲命令上,现在也不是想绕过去,而是在现在的基础上去自动化。对我而言,如果都能基于ssh,安全级别跟两次ssh连到服务器一样的话,就足够了。
    lequiet
        25
    lequiet  
    OP
       2013-07-27 10:29:33 +08:00
    @panzhc 忘了说了~,自己机子属内网机,原则上不能上网,跳板机的访问权限也限于那些远程服务器,所以不太清楚跳板机作代理有什么更好的用途。 至于rzsz的话,在远程服务器、跳板机被禁用了。
    arbeitandy
        26
    arbeitandy  
       2013-07-27 19:29:29 +08:00
    @pubby 一开始的方案3肯定是改动最少的方案
    ssh的ProxyCommand并非在跳板机上启动一个服务,而是调用netcat或者直接用ssh的built-in netcat mode将两端的IO转发。

    把tunneling的脚本改了一个用ProxyCommand版本的

    #!/bin/sh
    proxy_ncmode='ProxyCommand ssh -W %h:%p bastion_serv'
    proxy_nc='ProxyCommand ssh bastion_serv nc -w 10 %h %p'
    rsync -avze "ssh -o \"$proxy_ncmode\"" ./tmp/ trapped_me:~/tmp
    ssh -o "$proxy_nc" trapped_me uptime
    # -- end of script

    * bastion_serv 是中间hop跳板机
    * trapped_me 是只能从跳板机ssh接入的远程机 (生产环境?)
    脚本里两个mode都实验了一下:
    * proxy_ncmode 参数是使用 ssh 的netcat mode连接
    * proxy_nc 参数是使用 跳板机上的netcat转发,如果跳板机没有netcat,就必须使用 proxy_ncmode模式了。 nc -w 10 表示进程idle10秒后自动断开。


    比起tunneling来,这个ProxyCommand mode 不需要对不同远程server指定不同端口转发啦。
    (万一生产环境有百来台server呢?)。但前提是远程server们没有做ip限制-如果万一它们只许可 跳板server ip登录,那就只能做端口转发 - 不过我觉得更有可能发生的是,中间跳板机做了防火墙限制端口。。so, 用哪种方法其实要看运气。

    * 无密码登录和连接方式是两个不同的问题,搜索一下 key-based authentication吧。
    假设没有使用公钥验证,用任何方式连接都要输入两次密码。从安全角度看,那还不如尽快启用公钥认证模式。

    这一切都可以配置在 .ssh/config 里

    Host ec2main
    Port 2255
    Hostname 23.*.*.*
    IdentityFile ~/.ec2/anotheradmin.pem
    Host 192.168.*.*
    IdentityFile ~/.ssh/id_rsa
    ProxyCommand ssh -NW %h:%p bastion_serv
    Host trapped_me
    Hostname 192.168.0.1
    IdentityFile ~/.ssh/id_rsa
    ProxyCommand ssh -NW %h:%p bastion_serv
    Host bastion_serv
    Hostname *.*.*.*
    Host *
    User anotheradmin
    ForwardAgent yes
    Port 2244
    IdentityFile ~/.ssh/id_rsa
    UsePrivilegedPort no
    ServerAliveInterval 240
    ServerAliveCountMax 9999


    # --- 这个问题我为毛要写这么详细呢, 因为曾为小公司SA, 真的非常非常想恳求大家别再用expect拉, 特别是千万别放在跳板机啊。
    xdays
        27
    xdays  
       2013-07-27 19:35:12 +08:00
    我知道的有两种方案:
    1. fabric有个gateway参数,可以以类似proxy的方式通过跳板机在远程机器上批量执行命令,这个本人亲自验证过,只是fabric对这一点支持还不是很好,需要自己折腾。

    2. 多重expect,仅觉得从原理上可行。

    另外,楼主是不是蓝汛的呀
    arbeitandy
        28
    arbeitandy  
       2013-07-27 19:38:53 +08:00
    http://pastebin.com/7qa7rp5i
    回复中有格式的 ~/.ssh/config
    ETiV
        29
    ETiV  
       2013-07-27 21:16:28 +08:00
    估计LZ被当成腾讯的了...
    julyclyde
        30
    julyclyde  
       2013-07-27 23:36:16 +08:00 via iPad   ❤️ 1
    你们只能从跳板机ssh到其它机器吗?能不能 从跳板机到a然后再在a上ssh到b?
    lequiet
        31
    lequiet  
    OP
       2013-07-30 00:27:07 +08:00
    @arbeitandy 哈哈你写得好详细,但是我看不懂,对我们来说,方便肯定是比安全考虑得更多啊。。expect我在跳板机上有调用过,但发现history里会有明文的,所以打算每跑一次脚本自动再rm ~/.bash_history, 不知还有别的地方会log我敲的命令不?
    反过来说说,如果不想让大家太麻烦,就应该给我们开发的提供下方便,谁有空两一天到晚敲一串长长的scp,尤其是在找问题的时候。
    lequiet
        32
    lequiet  
    OP
       2013-07-30 00:31:14 +08:00
    @xdays 不是啊,只是在家游戏公司做开发的
    lequiet
        33
    lequiet  
    OP
       2013-07-30 00:34:24 +08:00
    @xdays 我了解过expect,应该是可行的只是嫌麻烦,它不比shell写起来累。有fabric这种东西能用上,肯定能省下不少时间调试shell啦。
    9hills
        34
    9hills  
       2013-07-30 02:22:26 +08:00 via Android
    在公司机器上搞个虚拟机,在这个里面做开发得了
    janxin
        35
    janxin  
       2013-07-30 08:44:08 +08:00 via iPad
    为了安全起见,在区域内机器建立中央服务器就可以了
    zz1956
        36
    zz1956  
       2013-08-01 14:29:18 +08:00
    ProxyCommand ssh 用户名@跳板机 exec nc %h %p 2 > /dev/null
    peterlu
        37
    peterlu  
       2013-08-01 15:05:35 +08:00
    这根本不是技术问题啊,而是规则问题,如果你觉得这个规则不爽,那你可以提出来,否则就好好遵守,要不然你就跳槽到别的公司干。
    这样通过技术手段突破,如果被发现了,最大的可能性就是被Fire。
    lequiet
        38
    lequiet  
    OP
       2013-08-02 23:17:05 +08:00
    @peterlu 我没有说突破,更没说打破。只是想在的基础上简化自动化,并在别人(比如运维)看来还是遵守规则的。规则不好改,也总有不爽的规则存在不管在哪。把别人的一整套规则按着跑,自动化的跑这规则,并不算违反规则,低线我很清楚,也不怕那这个最大的可能性。相反,如果连让你很不爽的规则(不管是出于什么理由而存在的规则),都不去优化,不管是从跟源优化还是从表面上优化,那是不是表示着,已经完全没激情了,工作只为了混口饭吃?
    yangxin0
        39
    yangxin0  
       2013-08-03 09:28:43 +08:00
    小心8000给你打电话
    xderam
        40
    xderam  
       2013-08-05 10:16:19 +08:00
    @lequiet 呃,原来你是开发?我还以为是运维呢。这个,我感觉还是把自己的需求好好和运维哥们说说,毕竟提高生产效率的事也不是什么坏事,互相理解就好了。但如果单纯从技术层面解决的话,运维哥们可能会不太高兴的说--!
    xofyarg
        41
    xofyarg  
       2013-08-05 10:29:18 +08:00
    “这根本不是技术问题啊,而是规则问题,如果你觉得这个规则不爽,那你可以提出来,否则就好好遵守,要不然你就跳槽到别的公司干。” 赞同。

    是否可以考虑在跳板机后找一台机器作为开发机,自己安装一些常用的软件。然后可以使用这台开发机连接其他服务器。跳板机的目的就是分离办公环境和生产环境。如果能够绕道进去,说明安全建设还不到位。 :)
    xderam
        42
    xderam  
       2013-08-05 11:36:40 +08:00
    @xofyarg 感觉楼主这个需求应该是在办公环境和生产环境中间,少了一个和生产环境的测试环境才萌发的。
    hfcorriez
        43
    hfcorriez  
       2013-08-05 11:39:27 +08:00   ❤️ 1
    snnn
        44
    snnn  
       2013-08-05 13:51:47 +08:00
    ssh -D5800 tiaoban -NTf

    然后让scp和securecrt走5800这个socks proxy即可。
    lequiet
        45
    lequiet  
    OP
       2013-08-09 00:09:35 +08:00
    @xderam 运维有运维的流程和规范,比如他们坚决不给你用rz,但在此种情形下我们总不能老敲长长的scp吧,而且是两次,而且都要密码,而且不同target用户名密码都不同。这种情形写个脚本自动scp两次自动输密码让我们少花很多在“运维”上的事。
    lequiet
        46
    lequiet  
    OP
       2013-08-09 00:26:19 +08:00
    @xofyarg 哪台开发机能连(远程)服务器不是我们能决定的。公司的办公环境跟开发环境是一样的,都是内网。需要跳板机也许是远程服务器安全需要不想那么多可以连进去(远程服务器并不是公司一起维护的),或者公司安全需求跟本不想让内网机能直接连出去而是让跳板机多一层监控。@xderam 测试环境(也就是能直连的内部服务器)也有的,但只限于开发测试。由于网游的运营需要,经常需要线上操作,
    lequiet
        47
    lequiet  
    OP
       2013-08-09 00:27:18 +08:00
    @hfcorriez 多谢,看标题就是我需要的了哈
    xderam
        48
    xderam  
       2013-08-09 11:17:07 +08:00
    @lequiet 呃,”经常需要线上操作”。。这个。。呵呵。。作为一个SA其实我想表达的是沟通应该比纯技术解决问题来的更彻底和直接一些。
    xofyarg
        49
    xofyarg  
       2013-08-09 14:51:46 +08:00
    @lequiet 我的意思是建议你在跳板机后面找一台机器作为开发机,这样就可以不用折腾这个问题了。当然,对于有些不是特别在意安全的公司来说,跳板机还是比较容易穿越的。
    bjzhush
        50
    bjzhush  
       2013-08-09 15:03:19 +08:00
    研发和运维的战争
    lequiet
        51
    lequiet  
    OP
       2013-08-09 21:00:04 +08:00
    @xderam 作为一个小角色表示跟本就没有权力和能力和机会去说服运维改变现有的规则,而且规则也不一定是在做事的运维想改能改的。本贴原意在于讨论脚本、自动化任务,即便没有跳板机,也有可以参考学习的回复。所谓“无视”,也并没有无视鄙视这个种规则和机制的意思。
    lequiet
        52
    lequiet  
    OP
       2013-08-09 21:05:29 +08:00
    @xofyarg 在意安全是肯定的,穿越跳板机(如果可以的话)被抓到估计不止被fire这么简单。本帖所说的远程服务器,是指线上运营中用的服务器,也正是经常需要到上面去操作的服务器,反倒内网的直连的开发测试服务器压根没有脚本自动化的需求。
    zxp
        53
    zxp  
       2013-08-09 21:42:28 +08:00
    跳板机上screen or tmux 连上目标服务器,只detach不logout,以后只需要连上跳板机就已经在目标服务器上了。
    lequiet
        54
    lequiet  
    OP
       2013-08-09 23:31:58 +08:00
    @zxp 什么原理?
    zxp
        55
    zxp  
       2013-08-10 08:19:48 +08:00
    参考 /t/73262 或在本站搜索tmux或screen
    xderam
        56
    xderam  
       2013-08-14 14:48:43 +08:00
    @bjzhush 持续交付里想避免的就是这种战争,可惜大多数人都想通过技术绕过研发和运维的那个墙,而不是沟通和交流。作为一个运维,我赶脚不能让开发的同学舒服是运维的失职。
    fatpa
        57
    fatpa  
       2013-08-14 17:26:15 +08:00
    pssh 估计可以帮到你~
    bjzhush
        58
    bjzhush  
       2013-08-19 17:30:44 +08:00
    @xderam 有些时候,并不完全是两个部门的事,公司要抓安全,所以运维就暴力地在路由封掉了exe的下载,公司不允许听歌看视频,又疯掉了mp3/flv,有时候,他们也是奉命行事,而且我喜欢技术斗争,随他封掉,我再想办法绕过,这也挺好玩的
    plprapper
        59
    plprapper  
       2013-08-19 19:04:18 +08:00
    https://code.google.com/p/parallel-ssh/ 你大概需要的是这个吧
    lequiet
        60
    lequiet  
    OP
       2015-08-13 13:36:44 +08:00
    挖旧贴两年后回复:
    @pubby @arbeitandy 当时是用的第二方案解决了问题,第三方案没试。远程server们是有做IP限制的,只限从跳板server ip登录。

    实现的具体方式:
    用Python写个通用的同步脚本,内部调用的就是@pubby 列的那些端口映射ssh命令然后再rsync/scp命令完成目录、文件同步、命令执行,用pexpect模块完成需要密码时的交互。脚本在本地Mac(UNIX命令环境)上执行,不同服务器密码用对称加密的方式(然并卵骗骗自己觉得稍微安全点吧)存在$HOME目录的一个ini文件里。 实际上只有少部分的远程服务器还在用密码其余已是证书,连跳板机也自己改用了证书。

    @xdays Fabric当时没看到这功能,一开始尝试用的是perl的Rex,连接远程服务器前先跟跳板机建ssh proxy,跟你说的Fabric的gateway方案应该是一样的。后来觉得用得不爽就自己用Python实现了。

    @xofyarg 跳板机后面找一台机器作为开发机,这个听起来行得通但服务开发人员这么多,不能大家都用那个开发机进行开发吧(大家都登录到那台server,用vim写代码?),如果只是拿那个开发server作为分发前的测试和中转,那本地PC跟这台跳板机后的开发机server的同步问题就又绕回来了。

    不用理会我,就是说一下后续而已:
    @xderam @peterlu
    线上机器的权限已回收,改文件的权限也没了,不用也不能做这种事了。安全和效率是要运维一开始就考虑好的,比如很久前其它部门有研发用SecureCRT脚本以方便登录跳转到指定服务器,密码都在里面,全体研发大家一起用,而这脚本还是运维帮写的。
    xderam
        61
    xderam  
       2015-08-15 01:49:07 +08:00
    @lequiet 我要是运维的领导.估计早就开了那写脚本的运维了....基本的安全意识都没有...而且还为难开发..恩..
    chinajik
        62
    chinajik  
       2016-09-26 09:46:02 +08:00
    @lequiet 什么特么我真好有这个需求...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2978 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:41 · PVG 22:41 · LAX 06:41 · JFK 09:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.