有没有多服务器 SSH key 管理工具?

2019-06-21 13:33:47 +08:00
 dangyuluo

最近在管理 AWS,GCP 上的一些服务器。机器的镜像开发和部署可以用 packer 和 terraform 完成,并且可以内置我的 public key 到每一台新服务器里。但是每当有人想请求访问某台服务器的时候,我还是需要本地ssh-copy-id上去,还要记住很多服务器的 IP。有没有什么工具,可以管理多台服务器的?最好能提供以下功能:

  1. 能够自动发现 Google Cloud / AWS 上的云机器
  2. 能够方便地登陆到各个服务器上
  3. 能够方便地分发 /撤销某个人的 public key。这点可能需要轮训
  4. 能够列出所有服务器上的 public key

如果有朋友知道类似的工具,请介绍一下。或者有其他方便的服务器管理软件,也请不吝赐教。谢谢

2693 次点击
所在节点    程序员
8 条回复
pmispig
2019-06-21 13:43:20 +08:00
saltstack
azh7138m
2019-06-21 13:44:38 +08:00
同需要一个

目前我是记录公钥到 gist,然后机器上 15 分钟同步一次
dangyuluo
2019-06-21 13:52:38 +08:00
@pmispig 最好是开源的,服务还是有点不放心


@azh7138m 如果实在没有的话我估计会自己写一个吧
leishi1313
2019-06-21 13:53:41 +08:00
1 楼加 1,用 salt 维护一个公共的 dotfile (也就是.ssh )这个文件夹,只需要改动一个地方每台机器就都是同样的一份 authorized_keys 了,而且你还可以做到不用的机器有不同的权限分配。我前公司就是这么干的,可以参考 github.com/mattbillenstein/ve
swchzq
2019-06-21 15:28:34 +08:00
OpenSSH 证书了解一下, 服务器上只要部署根证书就行了, 当需要授权某个用户访问时, 给他签发一个证书就行, 并且能限制有效期, 很方便, 完整的方案可以看看这两个项目:
https://github.com/cloudtools/ssh-cert-authority
https://github.com/nsheridan/cashier
julyclyde
2019-06-21 15:44:52 +08:00
各 sshd 可以用 sssd 来实现,从 FreeIPA 或者 LDAP 读出用户的 public key
ps1aniuge
2019-06-21 17:19:33 +08:00
1 能够自动发现 Google Cloud / AWS 上的云机器---怎么实现?
3 不难
4 能够列出所有服务器上的 public key---是某个人的公 key 么?
dangyuluo
2019-06-22 00:06:32 +08:00
@swchzq 这个考虑过,但是似乎不能随时撤销某个用户的证书

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

https://www.v2ex.com/t/576164

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

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

© 2021 V2EX