我曾经在我的电脑上运行 Ubuntu 14.04。每当我使用 ssh 密钥登录到各种服务器时,我都会收到一个 GUI 弹出对话框,要求我输入密钥的密码。在此处输入密码一次后,它通常会在我的剩余会话中记住它。弹出对话框还有一个选项,我可以勾选以在用户登录时解锁密钥。
现在,升级到 Ubuntu 16.04 后,该功能消失了。现在,每次使用时,我都会在命令行上提示输入 ssh 密钥的密码。这让我难以置信,我想恢复从 14.04 开始就习惯的更自动的行为。
更新
事实证明,只有在连接到特定 git 存储库中的 git 时,才会发生这种情况。我之前认为这是一个 ssh 问题,因为系统要求我输入 ssh 密钥的密码。但是,上述行为发生在其远程位于 GitHub 上的一个 git 存储库中,但不会发生在其远程也驻留在 GitHub 上(同一用户帐户下)的另一存储库中。这让我得出结论,这一定是一个特定存储库中的 git 配置问题。
如何配置 git 要求 ssh 使用密钥登录的方式?
更新2
应用解决方案后https://unix.stackexchange.com/a/288368/44098,我现在将旧存储库副本重命名为其他内容,并将新存储库副本重命名为旧副本的名称。现在,这会导致新存储库副本要求输入密码。这让我得出结论,问题是由包含存储库路径的某些 ssh 或 ssh 代理相关配置引起的。有任何想法吗?
答案1
我无法确定这个问题的原因,但这里有一个解决方案:
只需将存储库克隆到一个新副本:
git clone old-repo new-repo
cd old-repo
git remote get-url origin # Copy this URL
cd ../new-repo
git remote set-url [paste URL from old-repo]
也就是说,我简单地克隆存储库的新副本,并为其“原始”远程提供与旧存储库相同的 URL。当在新存储库中推送和拉取等时,ssh
不再要求输入密码,并且显然按照我的意愿使用我的 ssh 密钥。