Git:ssh 密钥过期就像密码过期一样?

Mor*_*ort 5 security git ssh-keys

我正在公司环境中设置 git。Git 操作将主要通过 SSH 使用单个帐户进行,并使用 SSH 密钥进行访问控制。(http 将用于帐户配置、基于 Web 的代码浏览,但除此之外别无其他。)

但拥有永不过期的 SSH 密钥的想法对我来说听起来很愚蠢。只需要一台受感染的桌面即可泄露私钥,入侵者就可以永久访问我们的知识产权。

我已经进行了大量的谷歌搜索,但关于此的信息很少。这让我感到震惊,因为我不认为我走错了路。

定期使密钥过期很容易,尽管 GitLab 和 Stash 等工具并没有让这件事变得简单。我们有一个“ git login”包装脚本,用于将 SSH 公钥发送到服务器。它可以确保旧密钥不仅被重复使用,而且还可以确保使用特殊密钥(如 中指定的~/.ssh/config),以便我们不会定期覆盖某人的密钥~/.ssh/id_da*并阻止他们的其他登录。config(尽管对于我的一些 lon-linux (Windows) 用户来说,在 ssh 文件中指定的非默认位置使用密钥可能会出现问题。)

还有其他人这样做过吗?什么是行业最佳实践?

更新

好吧,看来部分答案是“这正是 SSH 密码的用途。” 所以剩下的问题是这样的

有没有办法强制使用和定期更改密码?我假设人们会遵守,只是需要对他们来说很容易。

而且,话虽如此,ssh 密码消除了在 cron 作业中执行 git 操作的能力。如果不能做到这一点,那将是一个真正的障碍。

use*_*517 2

您的问题的答案是否定的,ssh 中没有办法强制定期更改密码短语。

由于您使用的是单个帐户,因此所有公钥都将位于单个authorized_keys 文件中,因此您可以通过从中删除密钥来使密钥无效。但这感觉需要花费太多精力,而且人们可以在不同的密钥上使用相同的密码短语。

缓解问题的一种方法是使用多重身份验证,这样,即使密钥/密码短语被泄露,也会有另一层阻碍。