你们是如何管理自己 ssh-key 的?

2021-03-02 14:34:43 +08:00
 jmyz0455
刚开始接触 Linux 、git 的时候,不清楚 ssh-key 是什么来的,只知道是个身份凭证来的,教程说要 ssh-keygen -C email.com 我就按着来生成密钥了,一开始只是一台 Thinkpad 生成一个 ssh-key 给一台 vps 用,后来变成一台 tp 的密钥配置到几台 vps 上用。

最初以为 key 只是 tp 的一个身份信息,告诉多台 vps 我是本人我要开门了。后来新买了 iMac,发现 Linux 上一个 user 貌似只能配置一个 ssh-key 登录?索性 iMac 没有新增 ssh-key,还是用的 tp 上的 ssh-key 。然后新公司配置了 mbp,才发现我一直都是一个 ssh-key 走天下,相当于多个客户端都在用同一个 ssh-key 访问多个 vps,要是 ssh-key 被偷了,那我相当于全部 vps 都能被随意出入了。

而且我自己用的 GitHub,和小伙伴一起用 GitLab,公司用 Gitee,然后被提醒公司的代码提交需要带公司的邮箱,而不是我私人的邮箱,我终于觉得是时候管理众多 ssh-key 了。

我现在觉得 ssh-key 是一个钥匙🔑,应该一个台 vps 的 user 只对应一个 ssh-key,GitHub 、GitLab 、Gitee 应该也分开三个 ssh-key,他们之间不应该共用,请问这个思路对吗?

还有,我还想确认下是不是 Ubuntu 下,一个 user 只能用一个 ssh-key 登录?因为试过有朋友也想登录我的 vps,我不想把我的 ssh-key 给他,想另外生成一个 ssh-key 然后新建一个用户让他自己弄,但是他想用我 Ubuntu 的 user,那我可以给一个 user 配置两个 ssh-key 的嘛?
2081 次点击
所在节点    信息安全
8 条回复
laydown
2021-03-02 14:47:35 +08:00
一个走天下即可。被偷了也没事啊,别人基本不知道你拿来登哪台 vps 。。。
jmyz0455
2021-03-02 15:15:45 +08:00
@laydown 真的?原来大家都是这么做的?
xderam
2021-03-02 16:32:47 +08:00
私钥可以加个密码 多 key 管理管理成本确实有点高。 不过有一个规则就是公私分明,如果这个私钥只有自己用。爱怎么用怎么用。如果是用于系统之间免密啥的建议还是有点管理比较好。
jmyz0455
2021-03-02 18:03:59 +08:00
@xderam 明白✌️
mschultz
2021-03-23 21:22:06 +08:00
个人的话一 key 走天下,这个 key 做好安全措施,例如只存放于自己的个人电脑中,并设置 Passphrase ;或者直接塞进 YubiKey 里,甚至可以插到陌生电脑上使用,由硬件设计保证私钥不泄露。公司身份的话另说。

如果连上服务器之后,需要在服务器端操作 git 、gpg 等需要私钥的软件,应该采用 ForwardAgent 和 RemoteForward 来转发本地 ssh-agent/gpg-agent 到服务器,而不应在服务器上放置私钥。

如果服务器上有什么定时任务或钩子需要无人值守地调用私钥,比如定时推送 /拉取某个 git 仓库的内容,那么建议使用范围精确有限的私钥。例如专门生成一个私钥,这个私钥只有访问那一个特定仓库执行特定操作的权限,而没有访问整个 GitHub/GitLab 账号的权限。
mschultz
2021-03-23 21:25:27 +08:00
另外,你这个「然后被提醒公司的代码提交需要带公司的邮箱,而不是我私人的邮箱」,这个要求其实和 SSH 私钥没有必然的关系,这个只是 git 的设置。

比如你的 git 全局设置 git config --global user.email 是你的私人邮箱,但是你公司代码那个仓库里面还可以有一个局部的 .git/config 文件,也就是 git config user.email <公司邮箱>,这个设置的作用域仅限你公司代码那个文件夹。

至于推送代码时用来认证的 SSH 私钥,其实还是可以用你私人的。
jmyz0455
2021-03-24 09:35:09 +08:00
@mschultz ssh 和 git 设置这个说得很好,非常感谢,之前一直都不知道是哪里出错了。一 key 走天下,需要几年更新一下的嘛?
YubiKey ForwardAgent RemoteForward 权限有限私钥这些我都不懂,这就去查一下。
dzdh
2021-04-19 14:54:36 +08:00
每次在新设备上使用都会生成一个新的 key ( git 、ssh ) ssh 通过云平台在线 append key

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

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

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

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

© 2021 V2EX