SSH 多人共用同一 root 用户的计算服务器有必要用单独的公钥吗,用和别的服务器相同的公钥有没有风险?(指的是放进 authorized_keys 里的公钥,每人放一个自己的)

2023-01-26 01:18:51 +08:00
 edis0n0
4308 次点击
所在节点    Linux
19 条回复
baobao1270
2023-01-26 01:32:51 +08:00
风险上肯定有的,那就是只要你一个私钥泄露所有服务器都被一锅端了,如果不同的服务器不同的私钥,那么泄漏了一个不会影响其他的,只要更换一个服务器的私钥就行。
但是一般私钥泄露就是全泄露,比如自己的电脑中了病毒什么的,所以意义也不是很大,一般认为多个服务器共用 ssh key 是安全的。所以还是看你自己的安全要求。
T0m008
2023-01-26 01:38:47 +08:00
都是 root 了,肯定没必要了,随便谁被黑了都是一样的效果。
dingwen07
2023-01-26 01:57:29 +08:00
每个人都使用自己的密钥
而且,最好的实践是每个人都有单独的账号,给 sudo 权限
wangyu17455
2023-01-26 02:14:27 +08:00
分开便于审计
realpg
2023-01-26 03:38:53 +08:00
为啥用 root 账号?
ryd994
2023-01-26 07:29:30 +08:00
有。所以企业合规的做法是通过堡垒机、审计系统控制服务器。经常更新控制密钥。不允许人员自己保存密钥。

如果是一个小项目组,那无所谓。你们自己保管好私钥就行了。最好能上智能卡 /TPM ,私钥由智能卡生成,最小化泄露风险。
ssh 禁止密码登入。如果所有人私钥全丢了,那就物理接入恢复。
yaoyao1128
2023-01-26 12:10:12 +08:00
用同一个公钥的不安全因素就是你这个服务器用的私钥丢失的话,别的服务器也可以被进入。
至于公钥,理论上公开也没啥问题……比如从 github 就能获取到你登记在上面的公钥
hack
2023-01-26 13:46:17 +08:00
要不,上个堡垒机吧
bao3
2023-01-26 15:48:09 +08:00
你都是 root 共享了,应该也不在乎安全了。正常是每个用户,通过 sudo 分组,限制不同的权限;各自使用自己的 ssh key ,保障 root 的安全,以及至少要装个 fail2ban 来加强安全,比如 30 秒内 3 次试探就禁 IP 。
所以你如果不在乎安全,你大可以用公网 IP 直接开放 ssh 服务给所有 root 的拥有者。因为它不影响你对安全的理解
edis0n0
2023-01-26 15:57:03 +08:00
貌似很多层楼没理解我的意思,我不是运维,想问这种情况下把我的常用公钥放上去,用常用公钥连不安全服务器有没有风险
cc
@T0m008
@dingwen07
@wangyu17455
@ryd994
@bao3
bao3
2023-01-26 16:08:05 +08:00
@edis0n0 多服务器共用一个 ssh key 是没有问题的。但如果有人拿到你本地的 knownhosts ,那就危险,不是危险,是完全失守
wenzhoou
2023-01-26 19:53:03 +08:00
@bao3 knownhosts 被拿到了为什么危险啊?
julyclyde
2023-01-28 09:40:31 +08:00
首先就是:
不要共用用户

正确的方法是通过 sudo 来控制每个人各自的权限
把身份认证和授权分离
julyclyde
2023-01-28 09:41:22 +08:00
@wenzhoou 如果可以更改你的 known_hosts 就可以进行中间人攻击。如果开启了 password authentication 的话,就可以拿到密码了
hlbcpt
2023-01-28 10:30:49 +08:00
@edis0n0 貌似你使用的自己常用公钥来连接不安全的服务器。这里“常用公钥”是关键。事实是并不安全。

你的服务器使用的 root 登录,如果其中任一用户使用不当或者因为服务器自身存在漏洞导致服务器被黑客控制,你的私钥会存在丢失的可能性,然后你的其他服务器也就不安全了。
wenzhoou
2023-01-28 14:26:44 +08:00
@julyclyde 我还以为是 被别人读到了就很危险呢。原来是如果被更改了很危险啊。
jahanngauss414
2023-01-28 17:04:33 +08:00
@hlbcpt 就算服务器被黑客控制也拿不到私钥的吧,ssh 认证又没有把私钥发给服务器
zyp0209
2023-01-29 18:46:20 +08:00
你把 sshd 的 debug 模式打开,模拟同一账号,不同 key 登录,你会看到每个 key 的指纹。
yinmin
2023-02-12 20:13:43 +08:00
建议:
1. 每个人一个独立 ssh key ,有人离职了只需要去掉他的 pub key 就可,不用所有人换 key 。
2. 硬盘上的 ssh key 私钥应该有密码保护,如果觉得每次登录输入密码麻烦,可以开机用 ssh-add 指令导入密钥,输入一次密码即可。(Windows 使用 ssh-add 需要启用 OpenSSH Authentication Agent 服务)
3. 一个 ssh key 可以登录多个服务器,没啥问题。
4. 如果觉得要再安全些,可以在 sshd 里加载二次认证模块,做 Google Authenticator 的二次认证。

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

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

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

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

© 2021 V2EX