我目前有一个旧的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中,如果你当前的ssh-agent已经加载了一些键,我发现没有办法删除它。

你必须通过eval "$(ssh-agent -k)"来终止当前的ssh-agent

然后,通过eval "$(ssh-agent -s)"启动一个新的ssh-agent

好了,现在您可以自由地添加一个首选密钥,如ssh-add ~/.ssh/id_preferred_key

检查您的系统上是否有.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再次测试

除非我误解了,你在本地机器上丢失了包含私钥的.ssh目录,所以你想删除服务器上允许基于密钥登录的公钥。

在这种情况下,它将存储在服务器上主目录中的.ssh/authorized_keys文件中。您可以使用文本编辑器编辑该文件,如果您能够识别相关行,则删除相关行(如果它是唯一的条目,则更容易!)

我希望这个密钥不是您访问服务器的唯一方法,您还有其他登录和编辑文件的方法。您可以手动向authorised_keys文件添加新的公钥,也可以使用ssh-copy-id。无论采用哪种方式,您都需要在服务器上为您的帐户设置密码身份验证,或者使用其他身份或访问方法来访问服务器上的authorized_keys文件。

SSH -add将身份添加到您的SSH代理,该代理在本地处理您的身份管理,并且“到代理的连接通过SSH远程登录转发,因此用户可以以安全的方式在网络中的任何地方使用身份所赋予的特权。”(手册页),所以我不认为这是你在这种情况下想要的。据我所知,如果你没有通过SSH登录访问服务器,它没有任何方法将你的公钥放到服务器上。

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

eval `ssh-agent -s` 

删除所有身份

ssh-add -D

去除特定身份

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

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

ssh-add -l

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