更新到 16.04 后,通过 ssh 的 Git 不会自动查找密钥

m00*_*0am 5 ssh kubuntu 16.04

问题

我最近在我的电脑上安装了 Kubuntu 16.04.2。从那以后,我不能再使用我的 ssh 密钥访问 bitbucket 和 github 存储库。在旧系统 (Ubuntu 14.04) 上,第一次使用密钥时会出现一个标题为“解锁私钥”的弹出窗口(询问我的密码),我准备好进行剩余的会话。

自更新以来,我收到以下错误:

$ git pull
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

这是因为密钥尚未添加到ssh-agent(尚未)中。我可以使用以下方法手动执行此操作:

$ ssh-add ~/.ssh/my_key
Enter passphrase for .ssh/my_key:
Run Code Online (Sandbox Code Playgroud)

这是一种解决方法。

虽然上述解决方法可能会奏效,并且有一些选项可以使其自动化(请参阅下面的链接),但我更希望将旧功能恢复到首次使用时自动查询密码短语的位置。

我(我的系统)缺少什么才能使其正常工作?我不是 100% 关于涉及哪些部分/程序。

附加信息

  • 不确定这是否相关,但我使用的是 LDAP,因此从 Ubuntu 14.04(使用 Unity)移动到 16.04(使用 KDE)时,我保留了主文件夹的内容。

  • 对于我的电子邮件加密密钥,行为没有改变,我被要求通过弹出窗口输入密码。

  • 还有另一个问题处理类似的问题。然而,这涉及不同的版本并且有不同的目标(他们让它在控制台上工作,我希望我的弹出窗口回来)。

Jak*_*uje 4

正如已经说过的,添加

IdentityFile ~/.ssh/my_key
AddKeysToAgent yes
Run Code Online (Sandbox Code Playgroud)

帮助您~/.ssh/config实现类似的行为。

如果我将 ( AddKeysToAgent yes) 添加到本地 ssh 配置 ( ~/.ssh/config),密钥也会被保存。然而,查询是在终端中,这本身还不错,但我想了解如何恢复此弹出窗口。

旧版 Ubuntu 中的弹出窗口来自gnome-keyring您存储密钥的地方。显然 Ubuntu 的 KDE 版本中没有。

没有简单的方法可以从纯 OpenSSH 获得相同的提示。但您可以尝试使用 KWallet 进行试验,它可能具有类似的功能。


Zia*_*zis 0

身份文件的默认文件名如下:

#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
Run Code Online (Sandbox Code Playgroud)

将您自己的文件添加到/etc/ssh/ssh_config或重命名它应该可以解决问题。

  • 不建议修改系统范围的配置`/etc/ssh/ssh_config`。使用“~/.ssh/config”。 (4认同)