我目前有一个旧的SSH密钥上传到服务器。问题是我丢失了~/。SSH目录(包含原来的id_rsa和id_rsa. zip)。酒吧文件)。
因此,我想直接在服务器上删除旧的SSH密钥,并上传一个新的密钥。
我尝试了以下命令,但没有成功:
$> ssh-add -D
有没有办法完全删除SSH密钥?
我目前有一个旧的SSH密钥上传到服务器。问题是我丢失了~/。SSH目录(包含原来的id_rsa和id_rsa. zip)。酒吧文件)。
因此,我想直接在服务器上删除旧的SSH密钥,并上传一个新的密钥。
我尝试了以下命令,但没有成功:
$> ssh-add -D
有没有办法完全删除SSH密钥?
当前回答
在ubuntu中,如果你当前的ssh-agent已经加载了一些键,我发现没有办法删除它。
你必须通过eval "$(ssh-agent -k)"来终止当前的ssh-agent
然后,通过eval "$(ssh-agent -s)"启动一个新的ssh-agent
好了,现在您可以自由地添加一个首选密钥,如ssh-add ~/.ssh/id_preferred_key
其他回答
我的解决方案(openSUSE Leap 42.3, KDE)是重命名文件夹~/。Gnupg显然包含缓存的密钥和配置文件。
在KDE注销/登录后,ssh-add/agent再次运行,并从头创建文件夹,但旧的密钥都消失了。
其他方法都没有成功。
我在我的Unity中打开了“密码和密钥”应用程序,并从安全密钥-> OpenSSH密钥中删除了不需要的密钥 它们也自动从ssh-agent -l中删除了。
在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
除非我误解了,你在本地机器上丢失了包含私钥的.ssh目录,所以你想删除服务器上允许基于密钥登录的公钥。
在这种情况下,它将存储在服务器上主目录中的.ssh/authorized_keys文件中。您可以使用文本编辑器编辑该文件,如果您能够识别相关行,则删除相关行(如果它是唯一的条目,则更容易!)
我希望这个密钥不是您访问服务器的唯一方法,您还有其他登录和编辑文件的方法。您可以手动向authorised_keys文件添加新的公钥,也可以使用ssh-copy-id。无论采用哪种方式,您都需要在服务器上为您的帐户设置密码身份验证,或者使用其他身份或访问方法来访问服务器上的authorized_keys文件。
SSH -add将身份添加到您的SSH代理,该代理在本地处理您的身份管理,并且“到代理的连接通过SSH远程登录转发,因此用户可以以安全的方式在网络中的任何地方使用身份所赋予的特权。”(手册页),所以我不认为这是你在这种情况下想要的。据我所知,如果你没有通过SSH登录访问服务器,它没有任何方法将你的公钥放到服务器上。