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

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

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

$> ssh-add -D

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


当前回答

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

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

其他方法都没有成功。

其他回答

检查您的系统上是否有.ssh文件夹

进入文件夹——> /Users/administrator/.ssh/id_ed25519.pub

如果不是,那么

打开终端。

粘贴到终端

检查user→ssh -T git@gitlab.com

删除现有SSH密钥

删除现有的SSH密钥→rm ~/.ssh/github_rsa.pub

创建新的

创建新的SSH密钥→SSH -keygen -t rsa -b 4096 -C "your_email@example.com" 公钥已保存在“/Users/administrator/.ssh/id_ed25519.pub”目录下。 打开公钥保存路径。 复制SSH密钥→GitLab帐号→设置→SSH密钥→添加密钥 从终端→ssh -T git@gitlab.com再次测试

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

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

其他方法都没有成功。

我可以确认这个错误仍然存在于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指出了错误和解决方案。

如果您正在尝试执行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

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