我目前有一个旧的SSH密钥上传到服务器。问题是我丢失了~/。SSH目录(包含原来的id_rsa和id_rsa. zip)。酒吧文件)。

因此,我想直接在服务器上删除旧的SSH密钥,并上传一个新的密钥。

我尝试了以下命令,但没有成功:

$> ssh-add -D

有没有办法完全删除SSH密钥?


当前回答

我可以确认这个错误仍然存在于Ubuntu 19.04 (Disco Dingo)中。VonC建议的解决方法非常有效,我的版本总结如下:

点击左上角的Activities标签 在出现的搜索框中,输入“启动应用程序” 点击“启动应用程序”图标 在弹出的框中,选择gnome密匙环管理器应用程序(不记得GUI上的确切名称,但它足够独特)并删除它。

接下来,我再次尝试ssh-add -D,重启后ssh-add -l告诉我代理没有身份。我确认我仍然有ssh-agent守护进程运行ps aux | grep代理。所以我添加了我最常用的密钥GitHub (ssh-add ~/.ssh/id_ecdsa),一切都很好!

现在我可以对我最常用的存储库进行正常操作,如果我偶尔需要访问使用RSA密钥的其他存储库,我只需要为它专用一个终端,导出GIT_SSH_COMMAND="ssh -i /home/me/.ssh/id_rsa.pub"。解决了!功劳归于VonC指出了错误和解决方案。

其他回答

我可以确认这个错误仍然存在于Ubuntu 19.04 (Disco Dingo)中。VonC建议的解决方法非常有效,我的版本总结如下:

点击左上角的Activities标签 在出现的搜索框中,输入“启动应用程序” 点击“启动应用程序”图标 在弹出的框中,选择gnome密匙环管理器应用程序(不记得GUI上的确切名称,但它足够独特)并删除它。

接下来,我再次尝试ssh-add -D,重启后ssh-add -l告诉我代理没有身份。我确认我仍然有ssh-agent守护进程运行ps aux | grep代理。所以我添加了我最常用的密钥GitHub (ssh-add ~/.ssh/id_ecdsa),一切都很好!

现在我可以对我最常用的存储库进行正常操作,如果我偶尔需要访问使用RSA密钥的其他存储库,我只需要为它专用一个终端,导出GIT_SSH_COMMAND="ssh -i /home/me/.ssh/id_rsa.pub"。解决了!功劳归于VonC指出了错误和解决方案。

在Remove Identity之前,需要使用该命令启动ssh-agent

eval `ssh-agent -s` 

删除所有身份

ssh-add -D

去除特定身份

ssh-add -d ~/.ssh/sshkeynamewithout.pub

对于使用此命令查找可用标识的列表

ssh-add -l

如果您正在尝试执行ssh相关操作,并得到以下错误:

$ git fetch
no such identity: <ssh key path>: No such file or directory

您可以使用以下方法从您的SSH代理中删除丢失的SSH密钥:

$ eval `ssh-agent -s`  # start ssh agent
$ ssh-add -D <ssh key path>  # delete ssh key

我的解决方案(openSUSE Leap 42.3, KDE)是重命名文件夹~/。Gnupg显然包含缓存的密钥和配置文件。

在KDE注销/登录后,ssh-add/agent再次运行,并从头创建文件夹,但旧的密钥都消失了。

其他方法都没有成功。

我在我的Unity中打开了“密码和密钥”应用程序,并从安全密钥-> OpenSSH密钥中删除了不需要的密钥 它们也自动从ssh-agent -l中删除了。