V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
PbCopy111
V2EX  ›  问与答

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

  •  
  •   PbCopy111 · 2020-06-20 21:56:43 +08:00 · 2038 次点击
    这是一个创建于 1412 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    还有更好的方法没??

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

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


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


    @GGGG430 一套这个好厉害,我去试试。
    yzwduck
        8
    yzwduck  
       2020-06-21 00:00:48 +08:00 via Android
    非常不推荐多个设备共用同一份密钥,一旦一个设备遗失或泄漏,所有服务器+客户端都要换密钥。
    其实你需要的只是集中管理一份 authorized_keys 文件,然后写一个脚本来同步到所有服务器。
    leishi1313
        9
    leishi1313  
       2020-06-21 01:16:51 +08:00 via Android
    建个 dotfiles 的 repo,把你的公钥传上去,然后用 ci/cd 或者 cron 定时更新。
    或者用 ansible 统一管理服务器上的 authorized_keys
    hyshuang2006
        10
    hyshuang2006  
       2020-06-21 23:52:20 +08:00
    @yzwduck 多个设备共用同一份密钥,一旦一个设备遗失或泄漏,所有服务器+客户端都要换密钥。
    --->服务器设置 IP 登陆限制,卡在这个位置,还用担心吗?
    julyclyde
        11
    julyclyde  
       2020-06-28 18:11:44 +08:00
    你这不是多台服务器,而是多台客户端啊
    PbCopy111
        12
    PbCopy111  
    OP
       2020-06-29 09:27:26 +08:00
    @julyclyde #11 对啊,三台服务器,8 个客户端。。都是自己用的,如果是公司的还好,自己的就麻烦点。不过现在我已经改成同意 sshkey 了,挺香的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2276 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:23 · PVG 17:23 · LAX 02:23 · JFK 05:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.