Answers:
我强烈建议您仅更改默认(登录)钥匙串上的设置,而不是调整ssh-agent(现在需要笨拙的黑客攻击)。我使用非常有帮助的“锁定睡眠”以及“ 4小时后锁定”,因为除非我真的很熟,否则我不希望出现提示。
或者,如果您更喜欢命令行:
security set-keychain-settings -lu -t 14400
这将导致至少一个额外的提示,提示您解锁钥匙串本身(需要您的登录密码),以及提示您要使用的任何钥匙...但是,它比禁用系统完整性保护IMO更有效。
注意:在较新版本的OS X中,必须禁用系统完整性保护才能使此答案起作用。(感谢@Dave Gregory和@Jaap指出了这一点。)
在文本编辑器中打开/System/Library/LaunchAgents/com.openssh.ssh-agent.plist
(在旧版本org.openbsd.ssh-agent.plist
中:)。更换:
<key>ProgramArguments</key>
<array>
<string>/usr/bin/ssh-agent</string>
<string>-l</string>
</array>
与:
<key>ProgramArguments</key>
<array>
<string>/usr/bin/ssh-agent</string>
<string>-l</string>
<string>-t</string>
<string>30m</string>
</array>
这将在30分钟后使密钥失效。
重启。等待,重启?!?这不是Windows!是的,重新启动。
好吧,您可以尝试解密有关即时更改设置的说明,但是祝您好运。
您需要设置密钥的寿命。通常它默认为永远。
运行时,ssh-add
您想使用该-t
选项。如果您想要一小时的关键寿命,那就是ssh-add -t 1h
。时间格式可以在sshd_config
手册页中看到,但简单地说,它们是数字,后跟s,m,h,d或w,表示秒,分钟,小时,天或周。
ssh-add
可以放到您的.bashrc文件中,它只会要求您验证一次密钥。即使密钥“过期”也不会被删除-尝试使用它时,它只会再次要求输入密码。
另一个选择是更改ssh-agent
存储在其中的启动选项并在其中/System/Library/LaunchAgents/org.openbsd.ssh-agent.plist
添加启动选项-t
。(我LaunchControl
用于更改这些内容,但是如果您小心的话,可以手动进行。)
ssh-add
前ssh
都要手动运行。这很有趣,但是我真的在寻找自动的东西。
org.openbsd.ssh-agent.plist
解决方案
另一种解决方案是:
ssh-add -t <time> <ssh-private-key> # Set maximum lifetime to your SSH priv key.
killall ssh-agent # Kill all ssh-agent processes.
ssh-add -D # Delete all identities recorded by the agent.
使用此解决方案,您不必为所有钥匙串选择超时-当您想要为私钥密码记录设置几秒钟的超时时就很烦恼-并且不必禁用SIP来编辑/ System /库/LaunchAgents/org.openbsd.ssh-agent.plist。