我想ssh-add
延迟询问我的私钥的密码,直到第一次访问它们。这样做的原因是我想ssh-agent
在登录时开始并向其添加密钥,但我并不总是使用 SSH,因此我希望锁定密钥,直到并且除非我确实需要启动 SSH。
我在谷歌搜索中找不到任何类似的内容。有没有办法做到这一点?如何在我真正需要 SSH 密钥之前保持锁定状态?
答案1
AddKeysToAgent 选项将根据需要起作用。在命令行 ( -o AddKeysToAgent=yes
) 或 SSH 配置文件 ( ~/.ssh/config
→ AddKeysToAgent yes
) 中设置此选项将在您使用 SSH 密钥时自动将其添加到正在运行的 SSH 代理。这将起到推迟密码提示和解锁密钥的作用,直到您实际使用它们为止。
例子:
Host example.com
IdentityFile ~/.ssh/id_rsa
AddKeysToAgent yes
文档来自ssh-config(5)
手册页:
AddKeysToAgent
指定是否应将密钥自动添加到正在运行的 ssh-agent(1)。如果将此选项设置为
yes
并且从文件加载密钥,则密钥及其密码短语将以默认生命周期添加到代理中,就像通过 ssh-add(1) 一样。如果此选项设置为ask
,则 ssh(1) 将需要在添加密钥之前使用 SSH_ASKPASS 程序进行确认(有关详细信息,请参阅 ssh-add(1))。如果此选项设置为confirm
,则每次使用该密钥都必须确认,就像将该-c
选项指定为 ssh-add(1) 一样。如果此选项设置为no
,则不会将任何密钥添加到代理。 ...参数必须是yes
、confirm
、ask
或no
(默认值)。
感谢 Freenode 上 #openssh 上的 BasketCase。