如何确保每次使用 SSH 时 Mac OS X 终端都会询问我的私钥密码?

如何确保每次使用 SSH 时 Mac OS X 终端都会询问我的私钥密码?

Mac OS X 终端似乎只会在我重新启动时要求输入我的标识文件密码。我相当偏执,这似乎不安全;我如何确保它要求输入密码每次我尝试使用密钥吗?

答案1

ssh-agent 会在会话的整个生命周期内存储这些内容(通过“man ssh-agent”查看 ssh-agent 选项)。您可以使用“ssh-agent -t 1”缩短添加到代理的密钥的生命周期,但 ss-agent 是在系统启动时由 launchd 启动的。这里有一个线程描述了如何处理这个问题: 苹果讨论

答案2

我将添加以下配置选项.ssh/config

Host *
    IdentitiesOnly yes

禁用 ssh-agent 的使用。

答案3

您可以将默认(登录)钥匙串设置为在睡眠时或超时后锁定,这似乎也会刷新 SSH 代理。

打开钥匙串访问并右键单击登录钥匙串以更改设置(我想你会想要比我更短的超时时间): 钥匙串安全设置

或者如果你更喜欢命令行:

security set-keychain-settings -lu -t 1   # for a 1 second timeout

我使用了你在评论中提到的 org.openbsd.ssh-agent.plist 更改,但在 El Cap 上,你需要禁用系统完整性保护才能做到这一点,我对此并不满意。我的解决方案需要额外的提示才能解锁,但这是我迄今为止发现的最干净的选项。

答案4

如果它仅在您登录时询问您,那么它将被存储在以下两个地方之一:通过 ssh-add 存储在 ssh-agent 中或通过 OSx 钥匙串。

就我个人而言,我会首先检查 Keychain,因为我觉得对于以 GUI 为中心的机器来说它可能是一个更安全的选择。

相关内容