V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
edis0n0
V2EX  ›  Linux

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

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

    如果是一个小项目组,那无所谓。你们自己保管好私钥就行了。最好能上智能卡 /TPM ,私钥由智能卡生成,最小化泄露风险。
    ssh 禁止密码登入。如果所有人私钥全丢了,那就物理接入恢复。
    yaoyao1128
        7
    yaoyao1128  
       2023-01-26 12:10:12 +08:00 via iPhone
    用同一个公钥的不安全因素就是你这个服务器用的私钥丢失的话,别的服务器也可以被进入。
    至于公钥,理论上公开也没啥问题……比如从 github 就能获取到你登记在上面的公钥
    hack
        8
    hack  
       2023-01-26 13:46:17 +08:00
    要不,上个堡垒机吧
    bao3
        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 的拥有者。因为它不影响你对安全的理解
    edis0n0
        10
    edis0n0  
    OP
       2023-01-26 15:57:03 +08:00
    貌似很多层楼没理解我的意思,我不是运维,想问这种情况下把我的常用公钥放上去,用常用公钥连不安全服务器有没有风险
    cc
    @T0m008
    @dingwen07
    @wangyu17455
    @ryd994
    @bao3
    bao3
        11
    bao3  
       2023-01-26 16:08:05 +08:00 via iPhone
    @edis0n0 多服务器共用一个 ssh key 是没有问题的。但如果有人拿到你本地的 knownhosts ,那就危险,不是危险,是完全失守
    wenzhoou
        12
    wenzhoou  
       2023-01-26 19:53:03 +08:00
    @bao3 knownhosts 被拿到了为什么危险啊?
    julyclyde
        13
    julyclyde  
       2023-01-28 09:40:31 +08:00
    首先就是:
    不要共用用户

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

    你的服务器使用的 root 登录,如果其中任一用户使用不当或者因为服务器自身存在漏洞导致服务器被黑客控制,你的私钥会存在丢失的可能性,然后你的其他服务器也就不安全了。
    wenzhoou
        16
    wenzhoou  
       2023-01-28 14:26:44 +08:00
    @julyclyde 我还以为是 被别人读到了就很危险呢。原来是如果被更改了很危险啊。
    jahanngauss414
        17
    jahanngauss414  
       2023-01-28 17:04:33 +08:00
    @hlbcpt 就算服务器被黑客控制也拿不到私钥的吧,ssh 认证又没有把私钥发给服务器
    zyp0209
        18
    zyp0209  
       2023-01-29 18:46:20 +08:00 via iPhone
    你把 sshd 的 debug 模式打开,模拟同一账号,不同 key 登录,你会看到每个 key 的指纹。
    yinmin
        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 的二次认证。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3465 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:48 · PVG 08:48 · LAX 16:48 · JFK 19:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.