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

我正在企业环境中build立git。 Git操作将主要通过SSH使用一个帐户与用于访问控制的SSH密钥。 (http将用于帐户configuration,基于web的代码浏览,但很less。

但是拥有永不过期的SSH密钥的想法对我来说是愚蠢的。 这只需要一个妥协的桌面泄露私钥,入侵者将永久访问我们的知识产权。

我做了很多Googlesearch,关于这方面的信息很less。 这让我感到惊讶,因为我不认为我走错了路。

虽然像GitLab和Stash这样的工具并不简单,但定期过期会很容易。 我们有一个用于将SSH公钥发送到服务器的“ git login ”包装脚本。 它可以确保旧密钥不仅被重新使用,还可以确保使用特殊密钥(如~/.ssh/config指定的),以便我们不会定期覆盖某人的~/.ssh/id_da*并停止他们的其他login。 (尽pipe在ssh config文件中指定的非默认位置使用密钥可能对我的一些lon-linux(Windows)用户有问题。)

有没有其他人做到这一点? 什么是行业最佳实践?

更新

好吧,看起来好像是这个答案的一部分:“这正是SSH密码短语的意思。” 所以剩下的问题就是这样

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

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

由于您使用的是单个帐户,所有公钥都可能位于一个authorised_keys文件中,所以您可以通过从其中删除密钥来使其无效。 这虽然感觉过于费力,人们可以在不同的密钥上使用相同的密码短语。

缓解你的问题的一个方法就是使用多重身份validation,这样,即使密钥/密码短语被攻破,还有另外一层。