延迟“ssh-add”密码提示,直到第一次使用

延迟“ssh-add”密码提示,直到第一次使用

我想ssh-add延迟询问我的私钥的密码,直到第一次访问它们。这样做的原因是我想ssh-agent在登录时开始并向其添加密钥,但我并不总是使用 SSH,因此我希望锁定密钥,直到并且除非我确实需要启动 SSH。

我在谷歌搜索中找不到任何类似的内容。有没有办法做到这一点?如何在我真正需要 SSH 密钥之前保持锁定状态?

答案1

AddKeysToAgent 选项将根据需要起作用。在命令行 ( -o AddKeysToAgent=yes) 或 SSH 配置文件 ( ~/.ssh/configAddKeysToAgent 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,则不会将任何密钥添加到代理。 ...参数必须是yesconfirmask或 no(默认值)。

感谢 Freenode 上 #openssh 上的 BasketCase。

相关内容