[1] 中有一些关于现有ssh-agent -t
功能的简短讨论,早在 2001 年 debian-devel [2] 上就有一篇文章希望有一个不活动超时功能。 SE [3] 上也有关于选美的类似讨论。
我不得不想知道地球上的其他地方是如何保护 ssh 密钥的 - 我是否错过了一些明显的东西,这对我来说是一个痛点,显然没有其他人?具体来说,我正在考虑脚本化的 ssh 交互,例如与 ansible 的交互。看来今天,你的选择是:
- 将代理中密钥的生命周期设置为令人担忧的长一段时间,例如。 1 小时或脚本的最大运行时间可能是(我怀疑很多人允许他们的 sudo 重新验证超时延长那么长!) - 但
seahorse
/gnome-keyring-daemon
几乎不支持这么多 [4] - 照顾您长时间运行的脚本,并每隔 5/10/15 分钟重新输入您的密码:现在您可以轻松地看到您每天输入密码 20 次
- 破解你自己的自制解决方案来模仿这个缺失的功能,也许与你的 shell 的
TMOUT
shell var 结合使用(感谢 freenode #openssh IRC 上的人们提出的建议) - 根本没有设置密钥生命周期,即您的代理将永远加载您的密钥或直到您终止/重新启动
如果您对您验证的每种类型的角色使用简短的 ssh 代理超时、强密码和不同的密钥文件:这会导致非常令人沮丧的一天!
我已经尝试过 gpgkey2ssh 和智能卡,但这并不能真正解决这个特定问题:我仍然想要 ssh-agent 功能,并且我不想每 5 分钟重新验证一次以防止我的私钥被暴露当我的计算机空闲时在内存中。
我做错了吗?
[2]https://lists.debian.org/debian-devel/2001/09/msg00851.html
[3]https://serverfault.com/questions/518312/putty-pageant-forget-keys-after-period-of-inactivity
[4]https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/129231
答案1
如果您担心这个问题,那么您可以轻松地使用该界面在屏幕锁定时xscreensaver-command -watch
运行。ssh-add -D
检查手册页以获得一个非常简单的示例。