【问题标题】:How to reset or change the passphrase for a GitHub SSH key?如何重置或更改 GitHub SSH 密钥的密码?
【发布时间】:2026-02-06 05:10:01
【问题描述】:

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

【问题讨论】:

标签: git github ssh ssh-keys passphrase


【解决方案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 密码,您或许可以恢复它。

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

    参考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 密钥。

    1. 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】:
    1. 登录您的 github 帐户。
    2. 转到“设置”页面(页面右上角的“扳手和螺丝刀”图标)。
    3. 转到“SSH 密钥”页面。
    4. 生成新的 SSH 密钥(可能研究 github 在该页面上提供的链接)。
    5. 使用“添加 SSH 密钥”链接添加新密钥。
    6. 验证您的新密钥是否有效。
    7. 使用已知密钥列表中旁边的“删除”链接让 gitub 忘记您的旧密钥。

    【讨论】:

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

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

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

    【讨论】:

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