MAC M1 配置 Git SSH

背景

换了新笔记本,本地想要克隆github 上的项目需要配置ssh 公钥到自己的github账户中,否则使用ssh 地址克隆会报错,如下。

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

操作

1. 生成ssh key

在 ~./ssh 目录中是没有已创建好的ssh key的,所以这里需要生成一下。
生成 ssh key

ssh-keygen -t ed25519 -C "这里是你的github注册的邮箱"

要求输入生成ssh key 的路径
1.png

2. 将生成的公钥添加到github账户中

找到settings 中的 SSH and GPG keys。
image.png
新建 SSH key,通过记事本打开生成的xxx.pub 公钥文件,将内容拷贝到新建 SSH key当中。

测试结果

失败继续排查

再次使用git clone 命令克隆项目,,,依然报错。

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

检查生成的公钥和github中配置的公钥没有问题。

查看github 官方文档帮助

https://docs.github.com/cn/authentication/troubleshooting-ssh/error-permission-denied-publickey
image.png
根据文档提示我们一步步排查

需要配置git config 全局邮箱和账号名称

通过命令查找是否配置邮箱、账号

git config --global --list

通过 git config 命令配置自己的github账号名和邮箱到git 全局config中。

git config --global  user.name "xxxxx"
git config --global  user.email "xxxxx"

配置完成后再次尝试 克隆项目,发现依然失败,继续查阅帮助文档排查。

通过命令验证连接

ssh -T git@github.com
git@github.com: Permission denied (publickey).

连接依然被拒,继续排查。

确保私钥已经加载到SSH中

通过如下命令检查是否有刚刚生成的ssh key

ssh-add -l -E sha256

笔者这里发现没有自己生成的key,根据帮助文档进行手动添加。
注意:在大多数系统中,默认私钥(~/.ssh/id_rsa 和 ~/.ssh/identity)会自动添加到 SSH 身份验证代理中。 应无需运行 ssh-add path/to/key,除非在生成密钥时覆盖文件名。
image.png
通过命令添加 ssh key 到本机ssh服务
ssh-add [私钥路径]

ssh-add /Users/xxxxx/.ssh/xxxxx

再次测试连接,连接成功。

ssh -T git@github.com
xxxxxxxxxx You've successfully authenticated, but GitHub does not provide shell access.

再次 git clone ,项目克隆成功。

可能遇到的其他问题

如果.ssh路径中生成的私钥公钥文件的读写权限不够也会导致,连接失败。
可以使用 sudo chmod -R 777对权限进行修改。

总结

折腾了一个小时多,最终查阅git官方帮助文档帮我从坑中爬了出来。总结一下处理过程中的要点。

  1. 生成ssh key,将公钥配置到github账户中。
  2. 本地的git config --global 配置邮箱要和生成的ssh key 指定的邮箱一致。
  3. 确保ssh key 是否添加到了本机ssh服务中。
  4. 生成的公钥私钥文件权限要可以读写。
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mac配置Git SSH,你可以按照以下步骤进行操作: 1. 首先,打开终端并切换到存放公钥和私钥的目录。使用命令`cd ~/.ssh`进入该目录。 2. 接下来,使用以下命令生成自定义密钥对,其中将`xxx`替换为你想要的标识符,并将`邮箱地址`替换为你的电子邮件地址:`ssh-keygen -t rsa -f ~/.ssh/id_rsa_xxx -C "邮箱地址"`。 3. 生成密钥对后,可以使用`ls`命令查看目录中是否生成了新的密钥文件。 4. 如果你想将密钥添加到GitLab或GitHub中,可以通过复制公钥的方式来配置。打开你的公钥文件(以`.pub`为扩展名),将其中的内容复制到你的GitLab或GitHub账户的SSH设置中。 5. 可以使用以下命令验证SSHGitLab或GitHub的连接,将其中的`git@xx.xx.xx.xx`替换为你的GitLab或GitHub的SSH地址:`ssh -T git@xx.xx.xx.xx`。如果成功连接,将显示欢迎信息。 6. 另外,在配置SSH时,如果你想为主机配置别名,可以修改项目中的配置文件。默认情况下,主机名和别名是相同的,但你可以根据需要进行自定义。 这样,你就可以在Mac上成功配置Git SSH了。请根据上述步骤逐步操作,如果有任何问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [macgit配置多个ssh key](https://blog.csdn.net/yaomingyang/article/details/104357785)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Macgit ssh配置](https://blog.csdn.net/awei970512/article/details/127029596)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值