每次SSH时,如何确保Mac OS X终端要求我输入私钥密码?


4

Mac OS X终端似乎要求我的身份文件密码的唯一时间是我重新启动时。我很偏执,这似乎不安全;我怎样才能确保它要求输入密码 每次 我试图用钥匙?


您有哪个版本的Mac OS X?
Studer

雪豹,10.6.2
ELLIOTTCABLE

Answers:


4

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


开罗,好小费实际上并不知道超时。谢啦。
jonathanserafini

事实上,这有所帮助。我不得不深入研究那个和相关的Reddit线程,但我最终放弃了完全禁用它 ssh-agent 整合,而是修改了 org.openbsd.ssh-agent.plist 给我一分钟的暂停时间。谢谢!
ELLIOTTCABLE

很好的答案,它对我有用。但是我认为如果你在这里发布解决方案会更好,链接线程以给出答案的功劳。
Alexandre L Telles

3

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

Host *
    IdentitiesOnly yes

禁用ssh-agent的使用。


显然,我不能投票,因为我在SuperUser上没有足够的声誉(我一直以为你可以投票给你的回复 自己的问题 但是......无论如何。)虽然接受了!这正是我原本想要的解决方案;比简单好多了 减少 一段时间到一分钟之内。
ELLIOTTCABLE

回想起来,我已经改变了我对另一个人的接受答案;虽然这显然实现了目标,但它无助于更深层次的问题:ssh-agent正在存储我的密钥。有了这个解决方案,任何人都可以走了, rm ~/.ssh/config和SSH进入我的机器。 (好吧,理论上......)
ELLIOTTCABLE

2

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

打开Keychain Access并右键单击登录钥匙串以更改设置(我想您需要比我更短的超时): Keychain Security Settings

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

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

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


1

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

就个人而言,我首先检查钥匙扣,因为我觉得它可能是一个更安全的赌注,以GUI为中心的机器。


我检查了钥匙扣,没有这样的运气。肯定是 ssh-agent。我该如何解决呢? 去做? (我将这个答案标记为已被接受,但它并没有真正解决我的问题......不是没有更多信息......)
ELLIOTTCABLE

对不起,为了简洁,我不在Mac的前面,所以我想我会给你足够的信息,以便能够找到答案。假设你没找到它:1。清除ssh-agent:ssh-agent -D 2.我的linux极客说,只需在你的〜/ .bashrc文件中添加“unset SSH_AUTH_SOCK”。 (您可能还想手动执行它以使其自动生效)。这样,SSH就不知道在哪里可以找到代理。 3.完全禁用代理:a)launchctl unload /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist b)我相信之后会重新启动。
jonathanserafini
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.