github添加ssh key之后push还要输入账号密码的解决方法

本文介绍如何通过更改GitHub项目的克隆方式为SSH链接,实现使用SSH密钥而非账号密码进行项目推送,从而实现免密码操作。文章指导读者如何在本地配置SSH密钥,并修改.git/config文件中的远程仓库地址来完成这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加添ssh keys的方法网上一搜很多,但是push的时候还是要输入账号密码,

是因为clone的时候用的是https而没有用ssh的方法

只需要克隆的时候在github上选择ssh(clone的地址下面有)

SSH clone URL

You can clone with  HTTPS, SSH, or  Subversion.

 Download ZIP

像这种,点击ssh,克隆这个地址即可,如果是已经克隆好的只需要改config就可以

vim .git/config

像下面改url

[remote "origin"]
url = git@github.com:akmumu/retina-data.git

<think>好的,我现在需要帮用户解决如何在终端中切换GitHub账号并通过SSH进行push操作的问题。首先,我得回忆一下之前学过的GitSSH配置知识。用户提到了多个账号的情况,可能涉及到生成不同的SSH密钥,并为每个账号配置对应的密钥。 首先,生成不同的SSH密钥是关键。每个GitHub账号需要一个独立的密钥对,比如id_rsa_personal和id_rsa_work。然后,需要配置SSH的config文件,指定不同的Host别名,对应不同的密钥和账号。这样在连接SSH会根据Host使用对应的密钥。 接下来,用户需要将公钥添加到对应的GitHub账号中。这部分我记得引用[2]中提到过,需要登录GitHub账号,在设置里添加SSH公钥。每个账号都要添加自己的公钥。 然后,测试SSH连接是否正确。使用ssh -T命令来验证,确保每个Host别名都能正确识别对应的账号。 在本地仓库配置,需要注意如果仓库之前是用HTTPS方式克隆的,可能需要修改远程仓库的URL为SSH格式,使用对应的Host别名。例如,git@github-personal:username/repo.git。 用户可能遇到的问题包括:多个账号切换权限错误,或者SSH密钥未正确加载。这候可能需要使用ssh-add命令来添加密钥到代理,但引用[1]提到Windows下使用ssh-add可能会报错,所以可能需要不同的处理方法,比如在config文件中指定IdentityFile。 还需要考虑,如果同使用GitHubGitee,配置方式类似,但Host别名和域名需要调整。比如Gitee可以用Host gitee.com,但密钥不同。 最后,用户可能需要了解如何验证当前使用的账号,可以通过查看远程仓库的URL或者测试提交来确认。另外,权限问题可能需要检查密钥权限是否为600,以及config文件的格式是否正确。 总结步骤应该是:生成密钥、配置SSH config、添加公钥GitHub、测试连接、配置仓库远程URL。过程中要确保每个步骤正确,尤其是文件路径和别名不要弄错。可能还需要处理不同系统下的差异,比如Windows和Mac的路径问题。</think>### 如何在终端中切换 GitHub 账号并通过 SSH 进行 push 操作 #### **步骤 1:生成多组 SSH 密钥** 为不同 GitHub 账号生成独立的密钥对,例如: ```bash # 个人账号密钥 ssh-keygen -t ed25519 -C "personal@example.com" -f ~/.ssh/id_ed25519_personal # 工作账号密钥 ssh-keygen -t ed25519 -C "work@example.com" -f ~/.ssh/id_ed25519_work ``` 生成的密钥文件为: - `id_ed25519_personal`(私钥)和 `id_ed25519_personal.pub`(公钥) - `id_ed25519_work`(私钥)和 `id_ed25519_work.pub`(公钥) --- #### **步骤 2:配置 SSH 配置文件** 编辑 `~/.ssh/config`,为不同账号分配别名和密钥: ```bash # 个人账号配置 Host github.com-personal HostName github.com User git IdentityFile ~/.ssh/id_ed25519_personal IdentitiesOnly yes # 工作账号配置 Host github.com-work HostName github.com User git IdentityFile ~/.ssh/id_ed25519_work IdentitiesOnly yes ``` - `Host` 定义别名,用于后续仓库 URL 中 - `IdentitiesOnly yes` 强制只使用指定密钥[^1] --- #### **步骤 3:添加公钥GitHub 账号** 1. 复制公钥内容: ```bash cat ~/.ssh/id_ed25519_personal.pub ``` 2. 登录对应 GitHub 账号,进入 **Settings → SSH and GPG keys**,点击 **New SSH key** 粘贴公钥[^2] --- #### **步骤 4:测试 SSH 连接** ```bash ssh -T git@github.com-personal # 应显示:Hi [个人账号名]! You've successfully authenticated... ssh -T git@github.com-work # 应显示:Hi [工作账号名]! You've successfully authenticated... ``` --- #### **步骤 5:配置本地仓库远程地址** 在需要切换账号的仓库中修改远程 URL: ```bash git remote set-url origin git@github.com-personal:username/repo.git # 或 git remote set-url origin git@github.com-work:username/repo.git ``` --- #### **验证操作权限** 执行 `git push`,检查提交记录中的账号信息: ```bash git push origin main ``` --- #### **常见问题解决** 1. **权限拒绝错误**: - 检查密钥文件权限是否为 `600`: ```bash chmod 600 ~/.ssh/id_ed25519_* ``` - 使用 `ssh-add` 加载密钥(Mac/Linux): ```bash ssh-add ~/.ssh/id_ed25519_personal ssh-add ~/.ssh/id_ed25519_work ``` 2. **HTTPS 仓库迁移**: 若原仓库使用 HTTPS,需修改 URL: ```bash git remote set-url origin git@github.com-personal:username/repo.git ``` --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值