我想使用钥匙串来管理 SSH 密钥的密码提示,但它应该 1) 仅在我实际使用密钥时询问它,并且 2) 之后将其保存一段时间。目前我有2个选择:
$ eval `keychain --eval --agents ssh id_rsa`
-- 这将始终在启动时要求密码短语,但随后会保存它。$ eval `keychain --eval --noask --agents ssh id_rsa`
- 启动时不会要求任何东西,但每次我使用该密钥时都会要求输入密码。有什么方法可以结合这些方法的优点吗?
Jak*_*uje 11
在ssh-agent
OpenSSH的和最新版本使简单:
ssh-agent
使用添加的键的默认超时启动正常(例如 60 分钟):
eval `ssh-agent -t 60m`
Run Code Online (Sandbox Code Playgroud)配置您ssh
将实际使用的密钥添加到代理。向 ~/.ssh/config` 添加新行:
AddKeysToAgent yes
Run Code Online (Sandbox Code Playgroud)
此功能在最新的 OpenSSH 7.2 中。在以前的版本中,如果超时,您需要手动将密钥添加到代理中,但可以使用 bash 功能非常简单地自动化,如下所示:
ssh() {
/bin/ssh -o BatchMode=yes $* || \
ssh-add path/to/the-key && /bin/ssh $*
}
Run Code Online (Sandbox Code Playgroud)
想法:尝试在批处理模式下使用密钥进行连接(如果密钥不存在,则不会提示输入密码并失败),失败时,将密钥添加到代理并重新运行 ssh 命令。
归档时间: |
|
查看次数: |
2700 次 |
最近记录: |