前言
最近在学校有个课设多人开发一个游戏,要团队协作,选用了腾讯云的coding作为代码管理仓库,但在配置的时候遇到了一些问题,相比于github,发现腾讯的coding更难用,,,这里记录一下过程
配置SSH公钥
生成公钥并部署到个人设置
本文使用 ssh-keygen
工具生成 SSH 公钥,执行命令:
ssh-keygen -m PEM -t ed25519 -C "your.email@example.com" // 创建新的 SSH 私钥与公钥密钥对,输入你的邮箱作为标签
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] // 推荐使用默认地址
Enter passphrase (empty for no passphrase): // 此处直接回车即可;若设置密码,则每次使用 SSH 方式推送代码时都会要求输入密码
Enter same passphrase again: // 同前,此处直接回车即可
到 ~/.ssh/
文件夹下cat
一下 pub
文件,然后复制里面内容到仓库设置,部署公钥下面
部署公钥默认拥有该项目的只读权限。如果需要获取推送权限,请勾选部署公钥设置里的「授予推送权限」。
-
完成后,在本地运行首次连接时的公钥认证命令:
ssh -T git@e.coding.net
添加至团队部署公钥
团队所有者 / 管理员点击首页导航左下角的设置按钮,前往「团队设置中心」->「功能设置」-「代码仓库」->「团队设置公钥」中录入 SSH 公钥。
录入后添加至相应的目标仓库。
添加完成后,通过私钥便能够使用 SSH 协议拉取代码仓库。
公钥拉取失败提示 Permission denied(publickey)
1.大概率因为本地存在多公钥
要在ssh中的config文件中配置IdentityFile,例如:
Host "demo1"
HostName "code.csdn.net"
User "git"
IdentityFile "C:/Users/your-name/.ssh/id_rsaDemo1"
Host "demo2"
HostName "code.csdn.net"
User "git"
IdentityFile "C:/Users/your-name/.ssh/id_rsaDemo2"
2.RSA 算法被禁用
此问题通常发生在 Git 客户端是 v2.33.1 及以上的版本或者 OpenSSH 是 8.8 及以上用户群体中。你可以添加 ~/.ssh/config
文件并使用 vim ~/.ssh/config
命令重新修改 ssh-rsa
配置。
Host e.coding.net
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
我的配置如下:
Host e.coding.net
HostName e.coding.net
PreferredAuthentications publickey
PubkeyAcceptedKeyTypes +ssh-rsa
IdentityFile ~/.ssh/e_coding_id_rsa
这样配置后 ssh -T git@e.coding.net
发现连接正常……,解决。