我有时ssh
用来连接到远程机器。一旦我输入了一次密码,我可以ssh
在没有密码的情况下再次使用,但即使我很久以后回来,它仍然不会问我,因为密钥被缓存了。我可以ssh-add -D
从缓存中删除密钥,但我希望这会在 1 小时后自动发生。我怎样才能做到这一点?
我有时ssh
用来连接到远程机器。一旦我输入了一次密码,我可以ssh
在没有密码的情况下再次使用,但即使我很久以后回来,它仍然不会问我,因为密钥被缓存了。我可以ssh-add -D
从缓存中删除密钥,但我希望这会在 1 小时后自动发生。我怎样才能做到这一点?
缓存您的 ssh 密钥的程序是 ssh-agent 程序,如果您查看手册页,您可以看到这个 relivent 选项:
您可以在启动程序中编辑 ssh-agent 程序。转到
System > Preferences > Startup Programs
,查找SSH Key Agent
并附-t 3600
加到命令。这将使您的密钥在一小时内过期。您需要重新启动会话(注销并重新登录)才能使其生效。你也可以为你的 gpg 密钥做类似的事情,它也可以在代理程序中设置,该程序可以以相同的方式启动(但默认情况下不安装),以防你厌倦了输入 gpg 密码短语用于包构建或电子邮件。
不幸的是,所选答案似乎不再有效:由于错误 525574 ,GNOME 密钥环不支持生命周期选项。例如,一种解决方法是为SSH 密钥禁用 GNOME 密钥环,但是您必须
ssh-add -t 60m
在使用时手动设置密钥(或编写脚本)。您可以为此添加一个 cron 作业。