什么是 Unity 中的 SSH 密钥管理?如何重置/禁用/配置它?

什么是 Unity 中的 SSH 密钥管理?如何重置/禁用/配置它?

我使用的是 Ubuntu 13.04,最近更改了我的 ssh 密钥。出于某种原因,Unity 或 Gnome(seahorse?)中的某些东西似乎无法识别它。密钥是在另一台机器上生成的,我基本上将新的 SSH 密钥对复制到/home/user/.ssh

在我复制新密钥后,出现了问题。当我git clone <url>在 Unity 的终端中运行时,出现此错误:

Agent admitted failure to sign using the key
Permission denied (publickey).
fatal: could not read from remote repository

Please make sure you have the correct access rights
and the repository exists

偶然间,我切换到 tty 控制台并运行了相同的git clone <url>命令。它确实有效!Unity 中的某些东西是否以某种方式管理 ssh 密钥,并且不知何故它没有使用目录中的密钥对/home/user/.ssh

经过一番谷歌搜索后,我尝试运行ssh-add,但没有成功。我还尝试将所有内容移出目录,/home/user/.local/share/keyrings然后重新启动,但在 Unity 的终端会话中仍然出现相同的错误。

这可能是什么问题?

答案1

Gnome Keyring 默认管理 Unity 中的 ssh 密钥。

auth.log 显示此信息

gnome-keyring-daemon[1823]: no private keys found in file
gnome-keyring-daemon[1823]: invalid or unrecognized private SSH key: <email>
gnome-keyring-daemon[1823]: signing of the data failed: The operation failed
gnome-keyring-daemon[1823]: no private keys found in file
gnome-keyring-daemon[1823]: invalid or unrecognized private SSH key: <email>
gnome-keyring-daemon[1823]: signing of the data failed: The operation failed

博客文章这里详细说明如何在桌面会话中禁用 Gnome Keyring。我在下面列出了步骤。

在 Unity 中禁用 Gnome Keyring 的步骤:

/etc/xdg/autostart/gnome-keyring-ssh.desktop1) 通过编辑文件将“NoDisplay”更改为 false,从启动应用程序中“取消隐藏”Gnome Keyring 。

2) 通过 Dash 运行“启动应用程序”,并取消选中 Gnome Keyring。这将阻止 Gnome Keyring 在 Unity 启动时启动。

3)注销,然后重新登录。

重新登录后,我就可以运行git clone <url>git fetch成功。

答案2

Seahorse 是 gnome-keryring 的 GUI。您可以在那里找到您的 ssh 密钥。

SeaHorse 是默认安装的,只需在 dash 中输入 Seahorse 即可。

相关内容