我希望保证密钥的安全,但又不想在每次git
调用时都输入密码,因为我想快速连续运行多个命令。我对此进行了研究,发现 ssh-agent/keychain/etc. 在便利性和安全性方面做得过分了,不符合我的喜好。类似这样的方法xyz git pull
就很完美了,xyz 检查我的密钥是否已解密,如果没有解密 - 要求我输入密码,然后在 N 分钟内不调用 xyz 后,它会忘记解密的值。就像 sudo 一样。这存在吗/可以通过一些巧妙的方法实现吗?
答案1
这正是ssh-agent
所做的。
其中 xyz 检查我的密钥是否已解密,如果未解密 - 则询问我的密码
你不需要任何xyz
。只需ssh-agent
从会话开始时开始(例如在 中~/.bashrc
):
[ -z "$SSH_AUTH_SOCK" ] && eval $(ssh-agent -t 5m)
并ssh
通过设置将您的客户端配置为在首次使用密钥时添加密钥
AddKeysToAgent yes
在你的~/.ssh/config
。
然后在不调用 xyz N 分钟后,它会忘记解密的值。
这就是-t
开关的ssh-agent
作用。设置添加的键的默认超时(在上面的示例中为 5 分钟)。