如何让 ssh-agent 按需自动添加密钥?

问题描述

ssh 支持在首次使用时向代理添加密钥(从 7.2 版开始)。您可以通过将以下内容放入来启用该功能~/.ssh/config

AddKeysToAgent yes

这也适用于使用衍生工具,例如 git。

7.2 更新日志

  • ssh(1):添加一个 AddKeysToAgent 客户端选项,可以设置为“yes”、“no”、“ask”或“confirm”,默认为“no”。启用后,如果 ssh-agent 正在运行,则在身份验证期间使用的私钥将添加到它(如果设置为“确认”,则启用确认)。

解决方法

我想运行 ssh-agent (具有最长生命周期选项),但在启动时不添加任何密钥,而是按需添加它们。

就像我第一次登录某个服务器时它应该要求输入密码,下一次(除非我等了一个多小时)它应该干净地连接:

ssh server1
Enter passphrase for key '/home/vi/.ssh/id_dsa':
server1> ...

ssh server2
server2> # no passphrase this time

# wait for lifetime

ssh server2
Enter passphrase for key '/home/vi/.ssh/id_dsa':

我不想手动记住每次运行 ‘ssh-add’。(例如,为 ssh 输入密码和“哦,它不记得了,需要重新输入”)。

如果用户提供了密码,如何配置 ssh 以自动将密钥添加到 ssh-agent?

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...