V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
tangzx
V2EX  ›  分享创造

管理服务器上的 ssh authorized keys 的工具

  •  
  •   tangzx ·
    layerssss · 2013-11-26 03:36:31 +08:00 · 4994 次点击
    这是一个创建于 4041 天前的主题,其中的信息可能已经有所发展或是发生改变。
    俺们是一个5个人的小团队。俺任sa,有时候其他同学要临时上服务器上去看一些东西,然后,各个服务器服务器各个账户各台电脑一堆 key很麻烦,更不要说我本来就手忙脚乱的你还通过 email 把你的 key 发过来然后叫我帮你添加到 4 台服务器上每个 staging 账户下,然后我帮你添加完之后我却不记得自己本来在做什么事儿了。

    所以这个工具应运而生,直接从 GitHub API 拉 keys,你可以将服务器的访问权限点一下就分配给 organization 里的公开成员们。

    图:



    项目地址: https://github.com/layerssss/sshkeyd
    19 条回复    1970-01-01 08:00:00 +08:00
    qsun
        1
    qsun  
       2013-11-26 04:49:11 +08:00
    这个想法不错,确实解决了一些问题
    stevenyou
        2
    stevenyou  
       2013-11-26 05:22:08 +08:00   ❤️ 1
    对于小团队很实用,大一点的话就OpenLDAP了
    akira
        3
    akira  
       2013-11-26 07:32:58 +08:00
    虽然是公钥,但是这样放总 觉得不大放心呀。。
    stevenyou
        4
    stevenyou  
       2013-11-26 08:13:27 +08:00
    @akira 有什么不放心的?
    clino
        5
    clino  
       2013-11-26 08:59:15 +08:00
    我是用ansible来批量添加和删除
    http://www.ansibleworks.com/docs/modules.html#authorized-key
    missdeer
        6
    missdeer  
       2013-11-26 09:07:23 +08:00   ❤️ 1
    这个好萌~
    tangzx
        7
    tangzx  
    OP
       2013-11-26 12:12:18 +08:00
    @stevenyou 后续俺会加上 GitHub Enterpirse 的支持
    tangzx
        8
    tangzx  
    OP
       2013-11-26 12:12:59 +08:00
    @akira 公钥是公开的,而且是从 GitHub API 上拉下来的,不用手动输入&配置,放心啦
    tangzx
        9
    tangzx  
    OP
       2013-11-26 12:14:02 +08:00
    @clino 俺这个不用配置,也不用作为服务运行在远程服务器上 XD

    ps. 下一步俺打算把它包装成一个 nw 做的客户端程序
    subpo
        10
    subpo  
       2013-11-26 13:27:15 +08:00
    能提供github以外的支持吗?
    tangzx
        11
    tangzx  
    OP
       2013-11-26 13:39:38 +08:00
    @subpo 因为这里用到了 GitHub 提供的3个功能:

    1. 登录
    2. 获取用户的组织和成员
    3. 获取用户的public keys

    所以一个服务要同时提供以上3种功能才可以用,所以 GitLab 、 BitBucket 和 GitHub Enterprise 以后是能想办法支持的。就看需求了。
    clino
        12
    clino  
       2013-11-26 13:42:17 +08:00
    @tangzx ansible 也不用在服务端安装程序的,只要服务端支持ssh就能用了
    ivenvd
        13
    ivenvd  
       2013-11-26 14:41:08 +08:00
    Ansible 好用……

    添加 Key:

    ansible all -i production -m authorized_key -a 'user=root key="$SSH_KEY"'

    删除 Key:

    ansible all -i production -m authorized_key -a 'user=root key="$SSH_KEY" state=absent'

    做成脚本或者 Web UI 都可以。
    tangzx
        14
    tangzx  
    OP
       2013-11-26 15:39:38 +08:00
    @clino 原来 ansible 也不用安装,不过俺这个可以从 GitHub 下拉成员名单和成员的 key,相比 ansible 要手动输入或设置 key , 要简单易用多了。 @ivenvd
    clino
        15
    clino  
       2013-11-26 15:57:24 +08:00
    @tangzx 没错,这部分是没有的,当然也没有web界面
    我只是看到你的这部分功能就想起ansible已有的这个module
    akira
        16
    akira  
       2013-11-26 19:01:00 +08:00
    强烈建议能支持bitbucket的私有仓库。。。
    tangzx
        17
    tangzx  
    OP
       2013-11-27 12:02:02 +08:00
    @akira nonono, 该工具和仓库没有关系,主要是拉 ssh keys 和 组织的成员,即使你不用 GitHub ,你也可以单独建立一个 GitHub 帐号来提供这些信息的。
    relaxyy
        18
    relaxyy  
       2013-11-27 12:55:13 +08:00
    每次看到楼主的头像都觉得这么可爱一定是个戴眼镜的女子,那帽子太像长发了………………

    虽然我还没有这个需求,但项目出发点和功能都很不错!界面也很简洁~赞
    garbch
        19
    garbch  
       2013-11-27 13:44:43 +08:00
    good
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1192 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:25 · PVG 02:25 · LAX 10:25 · JFK 13:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.