【问题标题】:Does Windows cache SSH keys?Windows 是否缓存 SSH 密钥?
【发布时间】:2016-09-02 13:48:30
【问题描述】:

我最近发布了一个关于 Git Bash 引用旧 GitHub 帐户用户名的问题。在此处参考该帖子:Original Post

现在我完全相信 Windows 会以某种方式存储我的 ssh 信息并将其用于我的 Git bash 会话。当我尝试推送到远程仓库时,它一直在声明

remote: Permission to MYUSERNAME/project.git denied to OLD-USER-NAME

我已经改变了一切。我已经搜索了所有可以查找旧用户名引用的目录,但找不到任何东西。我已经重复了 SSH 密钥生成过程至少 3 次,但没有成功。为什么老是弹出我的旧用户名?

所以我的问题是,Windows 是否有某种类型的 ssh 密钥缓存系统?即使我明确地加载了我的新密钥,它仍然会引用我的旧用户名。我唯一能想到的是我的 ssh 代理没有使用我的新密钥,然后当它尝试连接到 github 时,它会看到旧密钥并将其与我的旧用户名相关联。但同样,由于我从旧 GitHub 帐户中删除了旧密钥,这没有任何意义......

我要杀了 Git..

【问题讨论】:

    标签: git github ssh


    【解决方案1】:

    我认为这里的关键是您可能正在使用 HTTPS 来克隆新存储库,而新存储库又根本不使用 SSH 密钥进行身份验证。

    我怀疑凭据助手正在缓存您的凭据。看到这个:

    https://help.github.com/articles/caching-your-github-password-in-git/#platform-windows

    在 Windows 上,如果您使用了 wincred 帮助程序 (git config --global credential.helper wincred),那么这会将您的凭据存储在 Windows 凭据存储中,该存储具有一个控制面板界面,您可以在其中删除或编辑存储的凭据。例如看这个:

    使用此商店,您的详细信息由您的 Windows 登录信息保护,并且可以在多个会话中持续存在。这是在 Git for Windows 1.8.1.1 中添加的。

    所以要么:

    1. 尝试使用以下命令清除您的 https 克隆存储库的凭据缓存,然后重试:

      git credential-osxkeychain 擦除主机=github.com 协议=https

    或,

    1. 使用 Windows 控制面板的凭据管理器编辑凭据。

    然后在系统再次提示您输入身份验证详细信息时尝试再次推送到您的 HTTPS 克隆存储库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-07
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-30
      • 2018-08-19
      • 2023-01-05
      相关资源
      最近更新 更多