修改Gitee密码后无法使用Sourcetree拉取与推送的解决办法---MAC篇

当Gitee密码变更后,Sourcetree无法正常拉取和推送。解决方法是通过Mac的钥匙串访问删除旧密码,之后Sourcetree会提示输入新密码,完成更新。

修改Gitee密码后无法使用Sourcetree拉取与推送的解决办法

前言

在工作中遇到过很多次,在修改Gitee密码后回过头再使用Sourcetree对原仓库进行拉取和推送,都会失败。研究了下报错信息,大体上也明白是因为修改了Gitee的原始密码,但是Sourcetree仍在用修改之前的密码进行仓库的拉取和推送,这肯定不行啊。所以,怎样修改Sourcetree中保存的的密码成了困扰我的难题。在网上搜索了大量的帖子后,柳暗花明。这里就是记录下操作方法,以防后患。

报错信息展示

在这里插入图片描述

解决办法

  1. 在Mac上打开<钥匙串访问>,其图标长成如下样子
    ①图标
    在这里插入图片描述
    ②<钥匙串访问>界面
    在这里插入图片描述
  2. 找到gitee存储的登录密码,进行删除
    在这里插入图片描述
  3. 删除后再次针对Sourcetree上的仓库进行拉取,会要求你输如gitee的密码
    在这里插入图片描述<
<think>我们正在讨论的是Mac上的SourceTree。用户在使用SourceTree进行克隆、推送操作时,如果输错了SSH私钥密码,如何重新输入正确的私钥密码。 根据引用[1]和[3],我们知道SourceTree使用SSH密钥进行连接时,需要配置私钥。在Mac上,SSH密钥通常存储在`~/.ssh`目录下。当第一次使用私钥时,SourceTree会弹出一个对话框要求输入私钥密码(如果私钥被加密的话)。如果输入错误,由于私钥密码是保护私钥文件的,所以每次使用该私钥时都会要求输入密码,直到输入正确为止。但是,如果用户输错了,并且可能SourceTree没有再次弹出输入框,可能是因为缓存了错误的尝试。 在Mac上,SSH私钥密码是由系统的ssh-agent管理的。SourceTree在后台也是使用系统的SSH代理。所以,我们需要清除ssh-agent中缓存的错误私钥密码,然后再次操作,SourceTree就会重新提示输入私钥密码。 具体步骤: 1. **打开终端**(Terminal)。 2. **查看当前ssh-agent中缓存的私钥**:使用命令`ssh-add -l`可以列出当前已经添加到ssh-agent的私钥。如果看到有错误的私钥(比如你输错密码的那个私钥),那么需要将其移除。 3. **移除所有缓存的私钥**:使用命令`ssh-add -D`可以移除所有已经添加到ssh-agent的私钥。这样,下次使用私钥时,就会重新要求输入密码。 4. **重新操作SourceTree**:回到SourceTree,再次尝试克隆、推送操作,此时应该会弹出对话框要求输入私钥密码,输入正确的密码即可。 如果上述方法不行,可以尝试重启SourceTree,或者重启电脑,然后再试。 另外,如果私钥密码确实忘记了,那么只能重新生成SSH密钥对,然后将新的公钥添加到Git服务器(如GitHub、GitLab等)上。生成新的SSH密钥对的方法可以参考引用[3]中的命令: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 生成过程中会提示输入私钥密码(可以留空,但为了安全建议设置),然后将新生成的公钥(`id_rsa.pub`)内容添加到Git服务器。 总结步骤: 1. 打开终端,执行`ssh-add -D`清除所有缓存的私钥。 2. 在SourceTree中重新操作(克隆、推送),会弹出输入私钥密码的对话框。 3. 输入正确的私钥密码即可。 注意:如果私钥密码忘记了,那么只能重新生成密钥对并配置到Git服务器。 引用说明: - 引用[1]和[3]提到了SSH密钥的生成和存放位置,以及SourceTree中配置SSH客户端为OpenSSH,并选择私钥文件。 - 引用[2]提到了使用HTTPS和SSH两种方式连接的区别。 因此,针对Mac系统的解决方案就是清除ssh-agent中缓存的私钥,然后重新操作。 相关问题: 1. 如何在Mac上生成新的SSH密钥对? 2. 如何将SSH公钥添加到GitHub账户? 3. SourceTree如何切换使用HTTPS和SSH协议? 4. 为什么SSH私钥需要设置密码?不设置密码有什么风险? 5. 如何在SourceTree中配置多个SSH密钥用于不同的账户?</think>在 macOS 的 SourceTree 中,如果输错了 SSH 私钥密码,需要重新输入正确密码的操作步骤如下: ### 解决方案:清除 SSH 密钥缓存并重新验证 1. **清除 SSH 代理中的密钥缓存** - 打开 **终端**(Terminal) - 输入命令清除所有缓存的密钥: ```bash ssh-add -D ``` - 执行后会提示:`All identities removed` 2. **重启 SourceTree** - 完全退出 SourceTree(右键 Dock 图标 → 退出) - 重新启动 SourceTree 3. **重新触发密码输入** - 执行需要 SSH 连接的操作(克隆//推送- 此时会弹出新的密码输入对话框: ``` Enter passphrase for key '/Users/你的用户名/.ssh/id_rsa': ``` - **正确输入私钥密码**并确认 4. **验证连接状态** - 在终端测试 SSH 连接: ```bash ssh -T git@github.com # 以 GitHub 为例 ``` - 成功时会显示:`Hi 用户名! You've successfully authenticated...` ### 关键注意事项 1. **密码输入窗口特性**: - macOS 的密码输入窗口**不会显示输入内容**(无星号显示) - 输错时不会有明确提示,但连接会失败 2. **永久解决忘记密码的情况**: ```bash # 生成新密钥对(备份旧密钥 first!) ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # 将新公钥添加到 Git 平台 pbcopy < ~/.ssh/id_rsa.pub ``` > 在 GitHub/GitLab 的 SSH Keys 设置中粘贴新公钥[^3] 3. **SourceTree 配置检查**: - 进入 `SourceTree → 偏好设置 → 一般` - 确认 SSH 客户端选择 **OpenSSH** - 检查私钥路径是否为 `~/.ssh/id_rsa`[^1] ### 操作流程示意图 ```mermaid graph TD A[输错SSH私钥密码] --> B[终端执行 ssh-add -D] B --> C[完全退出SourceTree] C --> D[重新执行Git操作] D --> E{弹出密码输入框} E -->|输入正确密码| F[操作成功] E -->|仍失败| G[生成新密钥对] ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值