1
baobao1270 2023-01-26 01:32:51 +08:00 2
风险上肯定有的,那就是只要你一个私钥泄露所有服务器都被一锅端了,如果不同的服务器不同的私钥,那么泄漏了一个不会影响其他的,只要更换一个服务器的私钥就行。
但是一般私钥泄露就是全泄露,比如自己的电脑中了病毒什么的,所以意义也不是很大,一般认为多个服务器共用 ssh key 是安全的。所以还是看你自己的安全要求。 |
2
T0m008 2023-01-26 01:38:47 +08:00
都是 root 了,肯定没必要了,随便谁被黑了都是一样的效果。
|
3
dingwen07 2023-01-26 01:57:29 +08:00 via iPhone
每个人都使用自己的密钥
而且,最好的实践是每个人都有单独的账号,给 sudo 权限 |
4
wangyu17455 2023-01-26 02:14:27 +08:00
分开便于审计
|
5
realpg 2023-01-26 03:38:53 +08:00
为啥用 root 账号?
|
6
ryd994 2023-01-26 07:29:30 +08:00 via Android
有。所以企业合规的做法是通过堡垒机、审计系统控制服务器。经常更新控制密钥。不允许人员自己保存密钥。
如果是一个小项目组,那无所谓。你们自己保管好私钥就行了。最好能上智能卡 /TPM ,私钥由智能卡生成,最小化泄露风险。 ssh 禁止密码登入。如果所有人私钥全丢了,那就物理接入恢复。 |
7
yaoyao1128 2023-01-26 12:10:12 +08:00 via iPhone
用同一个公钥的不安全因素就是你这个服务器用的私钥丢失的话,别的服务器也可以被进入。
至于公钥,理论上公开也没啥问题……比如从 github 就能获取到你登记在上面的公钥 |
8
hack 2023-01-26 13:46:17 +08:00
要不,上个堡垒机吧
|
9
bao3 2023-01-26 15:48:09 +08:00 via iPhone 1
你都是 root 共享了,应该也不在乎安全了。正常是每个用户,通过 sudo 分组,限制不同的权限;各自使用自己的 ssh key ,保障 root 的安全,以及至少要装个 fail2ban 来加强安全,比如 30 秒内 3 次试探就禁 IP 。
所以你如果不在乎安全,你大可以用公网 IP 直接开放 ssh 服务给所有 root 的拥有者。因为它不影响你对安全的理解 |
10
edis0n0 OP 貌似很多层楼没理解我的意思,我不是运维,想问这种情况下把我的常用公钥放上去,用常用公钥连不安全服务器有没有风险
cc @T0m008 @dingwen07 @wangyu17455 @ryd994 @bao3 |
11
bao3 2023-01-26 16:08:05 +08:00 via iPhone
@edis0n0 多服务器共用一个 ssh key 是没有问题的。但如果有人拿到你本地的 knownhosts ,那就危险,不是危险,是完全失守
|
13
julyclyde 2023-01-28 09:40:31 +08:00
首先就是:
不要共用用户 正确的方法是通过 sudo 来控制每个人各自的权限 把身份认证和授权分离 |
14
julyclyde 2023-01-28 09:41:22 +08:00
@wenzhoou 如果可以更改你的 known_hosts 就可以进行中间人攻击。如果开启了 password authentication 的话,就可以拿到密码了
|
15
hlbcpt 2023-01-28 10:30:49 +08:00
@edis0n0 貌似你使用的自己常用公钥来连接不安全的服务器。这里“常用公钥”是关键。事实是并不安全。
你的服务器使用的 root 登录,如果其中任一用户使用不当或者因为服务器自身存在漏洞导致服务器被黑客控制,你的私钥会存在丢失的可能性,然后你的其他服务器也就不安全了。 |
17
jahanngauss414 2023-01-28 17:04:33 +08:00
@hlbcpt 就算服务器被黑客控制也拿不到私钥的吧,ssh 认证又没有把私钥发给服务器
|
18
zyp0209 2023-01-29 18:46:20 +08:00 via iPhone
你把 sshd 的 debug 模式打开,模拟同一账号,不同 key 登录,你会看到每个 key 的指纹。
|
19
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 的二次认证。 |