有多个服务器和 sshkey,如何管理?

2020-06-20 21:56:43 +08:00
 PbCopy111

举个例子:我有三台服务器,都是 ubuntu 系统。

本地环境一台笔记本以及 wsl,一台 macbook,一台台式机以及 wsl 。 还有 ipad 跟两台 iphone 。

服务器采用的是 ssh key 验证的方式登录。 现在问题来了,因为我有一些需要,这些设备都会 ssh 登录到服务器上,那么服务器上就需要具备 8 个 sshkey 。可一旦升级了 wsl,比如变更到了 wsl2,重新安装了新系统,sshkey 就变了。iphone 也是,基本上有新机器我都要换一台。积累下来,我都忘记 sshkey 都是什么了。

现在我只要用一种方法,所有的机器,都用相同的id_rsa

每次重装以后,我就把以前的id_rsa以及id_rsa.pub文件都复制到新电脑上。

这样做是不是很不安全啊?但这是我想到的最简单的办法了,虽然 8 台设备都用一个私钥文件。。

还有更好的方法没??

2178 次点击
所在节点    问与答
12 条回复
yangxin0
2020-06-20 22:00:34 +08:00
.ssh/config
Jirajine
2020-06-20 22:29:33 +08:00
我的做法是,本地的设备,如内网的服务器、nas 、虚拟机等都用 id_isa,购买的云服务器,每个服务商单独生成一个(如 id_azure 、id_aliyun ) 用 ssh-agent 管理。
至于自己电脑,只要不装不可信的扫描你硬盘的软件,应该问题不大。
都用同一个 key 主要的问题是一旦疑似泄漏全都得改,以及身份被关联可能有隐私问题。
PbCopy111
2020-06-20 22:42:32 +08:00
@yangxin0
@Jirajine

我的问题,是 8 个设备,每一个都有自己的 id_rsa 文件,这些都要上传到服务器上么??
Jirajine
2020-06-20 22:47:24 +08:00
@PbCopy111 我的意思是不根据客户端分,根据服务器分。
8 台客户端,一台服务器,用一对 key 。
1 台客户端,8 台服务器,用 8 对 key 。
byte10
2020-06-20 22:55:26 +08:00
没搞明白你这啥需求,不是公钥登录吗?跟私钥有啥关系?
GGGG430
2020-06-20 23:06:21 +08:00
本地所有设备使用一套公私钥(一次生成多,然后复制整个.ssh 目录),这样所有服务器只需要信任这一套公私钥就行
PbCopy111
2020-06-20 23:11:48 +08:00
@Jirajine 明白啦。


@byte10 因为我有至少 8 对公私钥啊


@GGGG430 一套这个好厉害,我去试试。
yzwduck
2020-06-21 00:00:48 +08:00
非常不推荐多个设备共用同一份密钥,一旦一个设备遗失或泄漏,所有服务器+客户端都要换密钥。
其实你需要的只是集中管理一份 authorized_keys 文件,然后写一个脚本来同步到所有服务器。
leishi1313
2020-06-21 01:16:51 +08:00
建个 dotfiles 的 repo,把你的公钥传上去,然后用 ci/cd 或者 cron 定时更新。
或者用 ansible 统一管理服务器上的 authorized_keys
hyshuang2006
2020-06-21 23:52:20 +08:00
@yzwduck 多个设备共用同一份密钥,一旦一个设备遗失或泄漏,所有服务器+客户端都要换密钥。
--->服务器设置 IP 登陆限制,卡在这个位置,还用担心吗?
julyclyde
2020-06-28 18:11:44 +08:00
你这不是多台服务器,而是多台客户端啊
PbCopy111
2020-06-29 09:27:26 +08:00
@julyclyde #11 对啊,三台服务器,8 个客户端。。都是自己用的,如果是公司的还好,自己的就麻烦点。不过现在我已经改成同意 sshkey 了,挺香的。

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

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

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

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

© 2021 V2EX