如何重置或更改 GitHub SSH 密钥的密码?

Posted

技术标签:

【中文标题】如何重置或更改 GitHub SSH 密钥的密码?【英文标题】:How to reset or change the passphrase for a GitHub SSH key? 【发布时间】:2012-04-28 16:55:07 【问题描述】:

我忘记了我在 Git 中的密码。我该如何重置它?我在 Stack Overflow 上找到了两个解决方案,但我想知道要遵循什么流程来重置或获取它。

【问题讨论】:

更改同添加:***.com/questions/3818886/… 【参考方案1】:

如果您使用的是Linux/Mac,那么您可以删除文件known_hosts

它位于~/.ssh/known_hosts,或者如果您想覆盖/删除特定的 ssh 主机,那么您可以编辑 known_hosts 文件。

查看所有主机 => cat ~/.ssh/known_hosts 删除 know_hosts 文件 => rm -rf ~/.ssh/known_hosts

【讨论】:

【参考方案2】:

如果您生成了一个带有密码的 SSH 密钥,然后您忘记了此 SSH 密钥的密码,无法恢复它,您需要生成一个全新的 SSH 密钥对或切换到 HTTPS 克隆,以便您可以使用 GitHub 密码。

但是,也有例外

如果您使用 OS X 钥匙串配置了 SSH 密码,您或许可以恢复它。

    在 Finder 中,搜索 Keychain Access 应用程序。 在钥匙串访问中,搜索 SSH。 双击您的 SSH 密钥条目以打开一个新对话框。 钥匙串访问对话框在左下角,选择显示密码。 系统将提示您输入管理密码。在“钥匙串访问”对话框中键入它。 您的密码将被泄露。

参考Github help - How do I recover my SSH key passphrase?

【讨论】:

你救了我的命。 你也救了我的命。你让我意识到我可以在 KWallet 中看到它。 救世主!根据所提出的问题,应该是最佳答案。【参考方案3】:

密码短语可以添加到现有密钥中,也可以在不重新生成密钥对的情况下更改:注意如果密钥没有密码短语,这将起作用,否则您会得到:@ 987654322@ 然后Bad passphrase

$ ssh-keygen -p
Enter file in which the key is (/Users/tekkub/.ssh/id_rsa):
Key has comment '/Users/tekkub/.ssh/id_rsa'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.

如果您的密钥有passphrase,那么无法恢复一对 SSH 密钥的密码。在这种情况下,您必须创建一对新的 SSH 密钥。

    Generating SSH keys

【讨论】:

如果密钥没有密码,这很好,但如果他们有密码并且你不记得它,那么这没有用,因为你会得到这个:Enter old passphrase:然后Bad passphrase.【参考方案4】:

简而言之,没有办法恢复一对 SSH 密钥的密码。为什么?因为出于安全原因,它首先是这样设计的。其他人给你的答案都是更改密钥密码的正确方法,而不是恢复它们。因此,如果您忘记了密码,最好的办法就是创建一对新的 SSH 密钥。这里是how to generate SSH keys and add it to your GitHub account。

【讨论】:

@TechMLG 这绝对是如何做到的(点击GitHub help的链接)!为我设置了一个新的 SSH 密钥文件和密码短语。 OP 应该考虑接受。【参考方案5】:
    登录您的 github 帐户。 转到“设置”页面(页面右上角的“扳手和螺丝刀”图标)。 转到“SSH 密钥”页面。 生成新的 SSH 密钥(可能研究 github 在该页面上提供的链接)。 使用“添加 SSH 密钥”链接添加新密钥。 验证您的新密钥是否有效。 使用已知密钥列表中旁边的“删除”链接让 gitub 忘记您的旧密钥。

【讨论】:

问题是重置还是改变!不买新的 @jürgen-k,密码用于加密 SSH 密钥。这样做的全部意义在于,只有知道密码才能使用密钥。如果有一种方法可以恢复或“重置”(无论这意味着什么)用于欺骗加密材料的密码,那么这种密码系统的效用将接近于零。 (请注意,SSH 最常用于远程访问服务器,而不是 Git)。 TLDR:在我们的案例中,“不可能”的答案是无用的,但它是正确的。【参考方案6】:

您可以通过以下方式更改您的私钥的密码:

ssh-keygen -f ~/.ssh/id_rsa -p

【讨论】:

这意味着~/.ssh/id_rsa 本身没有加密,不是吗?但如果它是加密的,我们又回到了原点。 这要求输入旧密码。没有帮助。 关于 OP 的问题 - 不,如果您忘记了密码,这将无济于事。但是,如果您只是想重设密码,这就是方法! 如果忘记了“当前密码”,如何输入?错误的解决方案。 问题标题为“重置或更改”——我来到这里搜索解决方案,只需更改我钥匙上的密码。点赞数表明我不是唯一一个。

以上是关于如何重置或更改 GitHub SSH 密钥的密码?的主要内容,如果未能解决你的问题,请参考以下文章

如何生成 SSH keys, 并在 Github 或 Gitlab 等上添加密钥

现在在 Github 中删除我的 SSH 密钥是不是需要我输入用户名和密码?

设置和重置ssh key

使用 ssh-keygen 更改 ssh 密码会更改 ssh 密钥?

Git 不断询问我的 ssh 密钥密码

使用SSH密钥连接Github