V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FlowMEMO
V2EX  ›  程序员

程序员该如何保管好自己的私钥?

  •  
  •   FlowMEMO ·
    flowmemo · 2016-05-20 18:51:30 +08:00 · 13959 次点击
    这是一个创建于 2888 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以前用过 ssh key 方式登录,但是后来觉得自己可能保管不好私钥就放弃了.
    怕自己保管不好,一是怕不小心误删了,二是怕私钥泄露了(毕竟是存在电脑上不是脑子里的)

    现在想问一下大家,应该怎么保管好自己的私钥?

    还有就是有必要为不同的账号创建不同的密钥吗?
    96 条回复    2016-05-22 22:34:55 +08:00
    akagi
        1
    akagi  
       2016-05-20 19:06:31 +08:00   ❤️ 23
    连私钥都背不下来还敢自称程序员?!
    kfll
        2
    kfll  
       2016-05-20 19:08:58 +08:00
    同时使用多种高强度的认证方式,这样就不用特意去管理私钥了,也可以花式创建各种各样不同的私钥了...
    YUX
        3
    YUX  
       2016-05-20 19:10:25 +08:00
    我会在 1Password 里备份一遍私钥

    钥念 yuè?
    ivmm
        4
    ivmm  
       2016-05-20 19:10:33 +08:00
    1.给 key 加密放到云盘。
    2.那么云盘加密的 key 放哪里呢?
    3.再给新的 key 加密放到云盘
    4.那么云盘加密的 key 放哪里呢?
    5.再给新的新的 key 加密放到云盘
    6.那么云盘加密的 key 放哪里呢?
    ............



    还是背下来吧。不然这样就死循环了。
    kkzxak47
        5
    kkzxak47  
       2016-05-20 19:10:45 +08:00 via Android
    要看自己的私钥有多高的价值了,反正我自己的满世界乱复制,网盘手机工作电脑都存
    ivmm
        6
    ivmm  
       2016-05-20 19:11:48 +08:00   ❤️ 1
    @YUX 正确的读法是 yue , 高考过去一年了,这点常识还在的。

    但是国内有个密码学大佬,他念 yao , 然后念 yao 的人也不少,所以就不分到底哪个正确了。
    BMW
        7
    BMW  
       2016-05-20 19:12:27 +08:00
    你放心,你的私钥没那么重要。
    loading
        8
    loading  
       2016-05-20 19:13:44 +08:00 via Android   ❤️ 3
    我回答不止一次了:

    打印二维码放抽屉,多地存放。

    不怕死的话,匿名注册一个博客服务,贴出来……
    YUX
        9
    YUX  
       2016-05-20 19:16:37 +08:00
    @ivmm 密钥的[钥] 的意思我觉得是 钥匙的[钥] 难道不是这个意思?
    vus520
        10
    vus520  
       2016-05-20 19:17:13 +08:00
    尝试了 10 分钟,只能背 100 个字符,心累,还是乖乖的打印出来贴床头上吧。
    cnnblike
        11
    cnnblike  
       2016-05-20 19:17:43 +08:00 via iPhone
    @loading 打印二维码这个好,感谢
    boter
        12
    boter  
       2016-05-20 19:21:49 +08:00
    @ivmm 钥(yao)匙 or 钥( yue )匙

    反正苹果的输入法 siyue 打不出这个私钥( yao )
    Radeon
        13
    Radeon  
       2016-05-20 19:24:29 +08:00   ❤️ 7
    1. 密钥要加 passphrase 。使用 ssh-agent 、 ssh-add 在开机的时候输入一次 passphrase
    2. 密钥最好专门创建一个帐号,放在那个 home 下的一个目录。记得用 chmod og-rwx -R dir 把所有其他人的权限关掉。这个帐号最好在.bashrc 里面设好 umask ,使得其创建的任何文件都默认只有自己有 r 权限
    3. 需要使用 ssh 时,用 su -l 或者 login 以那个专门的帐号来用 ssh
    alexapollo
        14
    alexapollo  
       2016-05-20 19:26:37 +08:00
    如何保管自己的密码?用 1password ?如何保管好 1password 的密码?
    ryd994
        15
    ryd994  
       2016-05-20 20:04:34 +08:00 via Android
    怎么就没人说 USB token 和智能卡呢?
    xjp
        16
    xjp  
       2016-05-20 20:09:29 +08:00
    钥 [yuè]
    开锁或上锁的用具:锁~(a.“锁”和“钥”;b.喻重要关键;c.喻边防要地,如“北方~~”)。
    钥 [yào]
    义同(一):~匙(开锁、上锁的用具。“匙”读轻声)。

    所以从含义上看 两种音都可以
    我比较喜欢读[yào]


    我觉得指纹最方便 什么都不用记
    vibbow
        17
    vibbow  
       2016-05-20 20:19:08 +08:00
    @xjp 指纹是最不方便的,太容易泄漏了,又无法更换。
    仅适合加密强度最低的场合使用。
    cxbig
        18
    cxbig  
       2016-05-20 20:24:38 +08:00
    一般定期做,私钥 加密打包+伪装成其他文件 放:
    - 1Password
    - 家里的 Time Capsule
    - 某个随身携带的 U 盘
    skydiver
        19
    skydiver  
       2016-05-20 20:28:55 +08:00 via iPad
    @YUX 文白异读
    skydiver
        20
    skydiver  
       2016-05-20 20:30:02 +08:00 via iPad   ❤️ 1
    私钥的保存要点是,不要复用,不同机器不通账户都不要公用。
    julyclyde
        21
    julyclyde  
       2016-05-20 20:56:29 +08:00
    @YUX 是锁钥的 yue ,不是钥匙的 yao
    julyclyde
        22
    julyclyde  
       2016-05-20 20:58:24 +08:00
    @ryd994 USB token 没有对 ssh 客户端的标准协议;智能卡更不靠谱了,连读卡器都找不到
    相对靠谱一点儿的是,用 OpenPGP card 协议,然后用 gpg-agent 冒充 ssh-agent 给 SSH 用
    不过问题是 OpenPGP card 供应很少
    YUX
        23
    YUX  
       2016-05-20 20:58:56 +08:00
    @alexapollo 1Password 的主密码是我需要记到脑子里的强密码 当时在键盘里打了一个小时记住的
    tSQghkfhTtQt9mtd
        24
    tSQghkfhTtQt9mtd  
       2016-05-20 21:06:48 +08:00 via Android
    这个时候 ECC 的优势就出来了吗 233
    好记啊(
    realpg
        25
    realpg  
       2016-05-20 22:01:23 +08:00
    @YUX
    大连人表示
    那叫 yue 匙棍儿
    FlowMEMO
        26
    FlowMEMO  
    OP
       2016-05-20 22:05:39 +08:00
    @skydiver 比如我在两个机子上做开发,提交到同一个 repo ,这样需要一台机子一个私钥吗


    @liwanglin12 求解释
    nocwat
        27
    nocwat  
       2016-05-20 22:07:23 +08:00
    推荐 keepass 哦,装了 keeagent 插件之后还能实现 SSH 自动登录,超级好用
    qian19876025
        28
    qian19876025  
       2016-05-20 22:10:58 +08:00
    @ivmm 多音字而已
    sinxccc
        29
    sinxccc  
       2016-05-20 22:14:09 +08:00
    1. 密钥定期换
    2. 密钥永远不要离开本地的机器,离开本地机器的密钥视同已泄漏
    3. 重要的密钥打印一份出来放银行保险柜
    Balthild
        30
    Balthild  
       2016-05-20 22:15:26 +08:00 via iPhone
    使用 7z ,固实压缩+文件名加密+20 位强密码
    Ouyangan
        31
    Ouyangan  
       2016-05-20 22:17:09 +08:00
    @nocwat 我把 keepass 密码给忘了,蛋疼 , 现在用 lastpass
    tSQghkfhTtQt9mtd
        32
    tSQghkfhTtQt9mtd  
       2016-05-20 22:21:58 +08:00 via Android
    @FlowMEMO 。。(ノ-_-)ノ~┻━┻严格来说这是个抖机灵回答,因为没记错的话 ECC 在给定加密强度下的密钥长度最短所以会比较好记,这样你就可以存在脑子里了
    zander
        33
    zander  
       2016-05-20 22:24:29 +08:00
    600.
    zander
        34
    zander  
       2016-05-20 22:25:06 +08:00
    400 也行。
    SlipStupig
        35
    SlipStupig  
       2016-05-20 22:26:54 +08:00   ❤️ 3
    训练一只鹦鹉让它记住你的秘钥,每次要用就问鹦鹉,假如鹦鹉死了,秘钥就没了,这个我叫“秘钥生命周期”哈哈哈!
    julyclyde
        36
    julyclyde  
       2016-05-20 22:36:42 +08:00
    @sinxccc 2 和 3 冲突吧?
    SmiteChow
        37
    SmiteChow  
       2016-05-20 22:38:19 +08:00
    keepass
    ZE3kr
        38
    ZE3kr  
       2016-05-20 22:46:59 +08:00 via iPhone
    最近发现把密码什么的放 iPhone 的备忘录里并选择加密。加密的密码忘了?没关系,可以拿 Touch ID 解密,这就是我用备忘录的原因,系统原生支持拿 Touch ID 解密应该比第三方好的多。
    sobigfish
        39
    sobigfish  
       2016-05-20 22:58:54 +08:00
    @loading 打印机比 PC 更容易被攻克不,不然....更容易泄漏
    Septembers
        40
    Septembers  
       2016-05-20 23:02:41 +08:00
    SmartCard or YubiKey
    LazyZhu
        41
    LazyZhu  
       2016-05-20 23:14:07 +08:00
    vus520
        42
    vus520  
       2016-05-20 23:29:28 +08:00   ❤️ 1
    likuku
        43
    likuku  
       2016-05-21 00:59:35 +08:00
    你电脑硬盘不全盘加密?你电脑用的外置备份存储盘不全盘加密?你私钥不设置 passphrase ?
    sinxccc
        44
    sinxccc  
       2016-05-21 04:16:37 +08:00
    @julyclyde 2 说得简单了,写作:私钥文件不可以在除本机以外的任何电子存储设备上有副本…总之体会意思就行了,咱也不是在写法律文件…


    3 的话 @sobigfish 提了个醒,很重要的私钥的话,不要用一体机打印,用私人的便宜打印机
    dynaguy
        45
    dynaguy  
       2016-05-21 04:25:23 +08:00
    纹在大腿上,这不最近减肥,有点看不清了~
    skydiver
        46
    skydiver  
       2016-05-21 05:05:02 +08:00 via iPad
    @FlowMEMO 需要
    ryd994
        47
    ryd994  
       2016-05-21 05:48:02 +08:00 via Android
    @julyclyde 我描述的不清楚
    有 USB 的 gpg 智能卡读卡器,卡+读卡器也没多贵,亚马逊上一大把,靠不靠谱我没试过
    我一直以为 USB 的读卡器和卡直接一体的就叫 USB token
    然后最近常见的 yubikey ,我用的就是 yubikey 当智能卡
    同时 yubikey 也可以用作 otp ,这个需要服务器上配置 pam
    loading
        48
    loading  
       2016-05-21 06:45:46 +08:00 via Android
    @sobigfish 你直接写明个人密码,然后到处打印,怪谁……
    griffinqiu
        49
    griffinqiu  
       2016-05-21 08:03:49 +08:00 via iPhone
    私钥( yao )。这个读法为什么不可以,英文翻译过来的词
    ericls
        50
    ericls  
       2016-05-21 08:33:19 +08:00
    @ivmm 语言是人类交流的工具 只要能用于交流怎么读都是对的 如果非要选个正确的 应该选最流行的
    xpol
        51
    xpol  
       2016-05-21 08:45:21 +08:00 via Android
    我有个朋友读:私钥( shi )
    不过被我改过来读 yao 了。
    TangMonk
        52
    TangMonk  
       2016-05-21 08:49:30 +08:00
    忘记了可以在云服务器上通过 web 登录嘛
    jessun1990
        53
    jessun1990  
       2016-05-21 08:52:00 +08:00 via iPhone
    azurexie
        54
    azurexie  
       2016-05-21 08:54:19 +08:00
    @xpol ...本文盲一直以为是私 shi
    kkzxak47
        55
    kkzxak47  
       2016-05-21 09:04:35 +08:00 via Android
    什么 yao 啊 yue 啊,都不及金轮来的生动
    latyas
        56
    latyas  
       2016-05-21 09:12:39 +08:00
    private key 是有密码的,设一下就好,丢了起码可以缓一缓
    或者可以买个 digispark ,改 ssh 客户端,读默认私钥的时候通过 usb 获得私钥内容
    linux40
        57
    linux40  
       2016-05-21 09:15:52 +08:00 via Android
    @griffinqiu 英文翻译的词。。。私钥这个概念只能用在加密的时候呀。
    Fleeting
        58
    Fleeting  
       2016-05-21 09:17:35 +08:00 via Android
    一直念私 yao ,每次都是输入法提示私 yue 。。查了下,好像除了“钥匙”,其他都读 yue 。。
    tscat
        59
    tscat  
       2016-05-21 09:54:25 +08:00
    打包。。加密。密码用中文。中文总背得下来吧。。。随便一句话都能让超级计算机破解一万年。比如这句
    lfzyx
        60
    lfzyx  
       2016-05-21 10:28:08 +08:00
    加 passphrase
    Halry
        61
    Halry  
       2016-05-21 10:37:27 +08:00 via Android
    打电话给微软,都是说你的密钥( yao )密钥( yao ),平时也是说钥( yao )匙。
    xpol
        62
    xpol  
       2016-05-21 10:49:55 +08:00 via Android
    @azurexie 君子所错略同。
    ffffwh
        63
    ffffwh  
       2016-05-21 11:02:44 +08:00
    私钥不是本身可以弄一个 passphrase 么。 Mac 下第一次用时可以存到 Keychains 里去,以后不用每次都输。
    cabbage
        64
    cabbage  
       2016-05-21 11:21:58 +08:00 via Android
    私钥后多加点随机字符,然后用 7z 固实加密压缩,用分卷的,把每个卷存到不同的网盘,硬盘等等,这样只要缺一个卷就拿不到私钥。
    当然,这只是用来备份的一种方法,讲道理私钥是要不定期更换的。
    Balthild
        65
    Balthild  
       2016-05-21 12:46:19 +08:00 via iPhone
    @ericls 不。 yao 只是官话的音变产生,随普通话被扶正,除了「钥匙」外都读 yue 。钥,形声字,从金,音部为月,所以读作 yue 才是正确的。
    tracymcladdy
        66
    tracymcladdy  
       2016-05-21 13:15:51 +08:00
    没那么重要,我直接放 google drive 的
    ericls
        67
    ericls  
       2016-05-21 13:19:34 +08:00
    @Balthild 按照现在的形式来说 这个词应该被定义为两种读音均可 如果读 yao 是被人玩错误的 那么这个语言吃枣药丸
    airqj
        68
    airqj  
       2016-05-21 13:38:37 +08:00 via Android
    背下来不就行了
    另外,就算知道钥的正确读音 还是喜欢读要
    timothyye
        69
    timothyye  
       2016-05-21 13:59:41 +08:00
    我是直接放 dropbox 上
    timothyye
        70
    timothyye  
       2016-05-21 14:00:10 +08:00
    @vus520 你还真背啊,汗……
    kozora
        71
    kozora  
       2016-05-21 14:17:23 +08:00
    我的自己本地生成的密钥,然后密钥再加密码,密码用 lastpass 生成的高强度密码,然后本地存一份,再放一份到 onedrive ,然后密钥的密码查看需要验证 lastpass 的密码才能复制
    won
        72
    won  
       2016-05-21 14:25:12 +08:00
    论男人如果保管好私房钱
    kelos
        73
    kelos  
       2016-05-21 14:27:43 +08:00
    @akagi 不排除意外的事故导致的短时或长期的失忆,以及自身疾病带的健忘等情况导致你忘了密码这回事。。。
    kelos
        74
    kelos  
       2016-05-21 14:28:24 +08:00
    @loading 好方法
    honeycomb
        75
    honeycomb  
       2016-05-21 14:34:16 +08:00 via Android
    @ivmm 好在发音这个事情是可以改的,说不定以后的正统发音变成私(zuo)钥(si)了
    4679kun
        76
    4679kun  
       2016-05-21 14:52:19 +08:00 via Android
    base64 一遍 生成二维码
    Balthild
        77
    Balthild  
       2016-05-21 15:10:01 +08:00 via iPhone
    @ericls 不是被人玩错误的,是本来这个读音就是音变,后来在「钥匙」这个词上被扶正了。
    skyoojaa
        78
    skyoojaa  
       2016-05-21 15:14:27 +08:00 via Android
    纠结 siyao ,还是 siyue 的。多音字好吧。打出来就好啦。而且,题主既没有说念 yue ,也没有说念 yao 啊。只是问怎么保存嘛。
    Balthild
        79
    Balthild  
       2016-05-21 15:19:40 +08:00 via iPhone
    @ ericls 而且补充说明一下,钥这个字是简化字,繁体字鑰,当初简化汉字时不是被简化成「钅药」之类的而是简化成「钅月,也说明了本音是 yue 」。
    amorphobia
        80
    amorphobia  
       2016-05-21 15:51:31 +08:00
    表示在我方言里面『药』、『钥』、『乐』(音乐的乐)都是同一个发音,跟『月』的发音是不一样的 = =
    Delbert
        81
    Delbert  
       2016-05-21 17:56:00 +08:00 via Android
    @YUX 是的,还有密钥,读音为蜜月。
    778899
        82
    778899  
       2016-05-21 19:29:36 +08:00
    本人想做一个电脑站 (不复杂 简单的) 请好心大虾们伸出援助之手(有偿)

    -----小白在此叩谢
    QQ66282811
    charlie21
        83
    charlie21  
       2016-05-21 20:00:35 +08:00
    .ssh 文件夹扔 Google Drive 。即用即下载即删除
    deyu260
        84
    deyu260  
       2016-05-21 20:35:03 +08:00
    习惯的力量
    everpcpc
        85
    everpcpc  
       2016-05-21 20:38:28 +08:00
    看了大家的评论,果然还是赞同 1L :
    连私钥都背不下来还敢自称程序员?!
    onice
        86
    onice  
       2016-05-21 20:41:59 +08:00
    向你推荐 Keepass 。用这个加密,然后上传到云上。
    VmuTargh
        87
    VmuTargh  
       2016-05-21 21:18:39 +08:00
    用 cryptomator 加密,扔 bitbucket 上面的 private repo 做同步
    尽量用 x25519 算法( openssh 和 gpg 都兹瓷了, openssl 很快也会兹瓷),避免 NIST 后门同时缩短长度
    密码是一串字符串的 sha512 fingerprint , base64 过的
    julyclyde
        88
    julyclyde  
       2016-05-21 22:32:58 +08:00
    @ryd994 gpg 智能卡 是你自己定义的么?这货相当非主流,并不是随便一个卡都能给 GPG 用的
    Zohar
        89
    Zohar  
       2016-05-21 22:40:11 +08:00 via Android
    先 Encrypt ,然后 Dropbox 。
    jason19659
        90
    jason19659  
       2016-05-21 22:48:59 +08:00
    随便放哪,记住第 512 位和 1024 位。然后把源文件的这两位改了。用的时候再改回去
    akagi
        91
    akagi  
       2016-05-22 00:58:25 +08:00
    @kelos 也不要过于当真 不过根证书颁发机构的私钥都是锁保险柜的 所以还是看密级~
    dawncold
        92
    dawncold  
       2016-05-22 11:18:54 +08:00
    我还想考虑背诵一下 private key ,但一看有 1600 多个字符。。。果断放弃了。

    可以买个 Yubikey ,那是个硬件加密工具。
    limengwei
        93
    limengwei  
       2016-05-22 13:38:40 +08:00
    放 google 云盘
    sobigfish
        94
    sobigfish  
       2016-05-22 15:50:05 +08:00
    @loading 我是指打印机驱动的后门什么的 不是指自己 zuo
    loading
        95
    loading  
       2016-05-22 16:27:01 +08:00 via Android
    @sobigfish 所以你应该去路边打印,这样你那张图可以淹没在大量图里面。
    AbrahamGreyson
        96
    AbrahamGreyson  
       2016-05-22 22:34:55 +08:00
    gist
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1483 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 99ms · UTC 17:16 · PVG 01:16 · LAX 10:16 · JFK 13:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.