代码仓库码云(gitee)配置环境记录

🔍 一、问题重现:SSH 连接码云失败

执行 ssh -T git@gitee.com 后返回关键错误:

git@gitee.com: Permission denied (publickey).

原因分析:

密钥未绑定码云账户:已为 GitHub 生成的 SSH 密钥未添加到码云的 SSH 公钥列表。

密钥路径未识别:Git 默认使用 ~/.ssh/id_rsa,若密钥名称或路径不同(如自定义命名),需手动配置。

文件权限问题:私钥权限过于开放(如 777)会导致 SSH 拒绝使用。

🔧 二、解决方案:配置独立密钥与多平台管理

✅ 步骤 1:生成码云专属密钥

ssh-keygen -t rsa -b 4096 -C "your_email@gitee.com" -f ~/.ssh/id_rsa_gitee

三次回车(默认无密码)

注意:-f 指定密钥路径,避免与 GitHub 密钥冲突。

✅ 步骤 2:添加公钥到码云

复制公钥内容:

cat ~/.ssh/id_rsa_gitee.pub

登录码云 → 设置 → SSH 公钥 → 粘贴并保存。

✅ 步骤 3:配置 SSH 多平台识别

编辑 ~/.ssh/config 文件(无则创建):

GitHub 配置(原有)

Host github.com

HostName github.com

IdentityFile ~/.ssh/id_rsa_github

码云配置(新增)

Host gitee.com

HostName gitee.com

IdentityFile ~/.ssh/id_rsa_gitee # 指向新私钥

设置严格权限:

chmod 600 ~/.ssh/config ~/.ssh/id_rsa_gitee*

✅ 步骤 4:测试连接

ssh -T git@gitee.com

成功响应:

Hi 张三(@yang-yu521)! You've successfully authenticated...

⚠️ 提示 does not provide shell access 为正常现象,不影响 Git 操作。

⚙️ 三、进阶配置:解决高版本 OpenSSH 兼容性问题

若使用 OpenSSH 8.8+ 版本,可能因 RSA-SHA1 算法弃用导致密钥失效:

方案 1:强制启用 RSA-SHA1

在 ~/.ssh/config 追加:

Host gitee.com

HostkeyAlgorithms +ssh-rsa

PubkeyAcceptedAlgorithms +ssh-rsa

方案 2:换用 Ed25519 算法

ssh-keygen -t ed25519 -C "your_email@gitee.com" -f ~/.ssh/id_ed25519_gitee

推荐方案 1(无需更换密钥),完成后重新测试连接。

🚀 四、本地仓库关联与推送

创建码云空仓库:

复制 SSH 地址(格式:git@gitee.com:用户名/仓库名.git)。

本地仓库关联远程:

git remote add gitee git@gitee.com:yang-yuqing521/repo.git

首次推送:

git push -u gitee master

若遇冲突,先执行:git pull gitee master --allow-unrelated-histories。

💎 五、避坑指南总结

问题现象解决方案Permission denied检查公钥是否绑定码云 → 修复私钥权限(chmod 600) → 配置 SSH 多平台。提交记录混淆项目目录内单独设置邮箱:git config user.email "gitee专用邮箱"。TortoiseGit 报错指定 SSH 客户端为 Git 自带 ssh.exe(路径示例:C:\Program Files\Git\usr\bin\ssh.exe)。Git 高版本兼容性问题启用 RSA-SHA1 或换用 Ed25519 密钥。

🌟 技术总结

通过为码云生成独立密钥、配置 SSH 多平台管理,并修复文件权限,可安全高效地实现双平台(GitHub + 码云)代码托管。核心要点:

密钥隔离:避免跨平台安全风险。

权限控制:私钥权限需为 600,配置文件权限为 600。

协议优先:始终使用 SSH 协议(非 HTTPS)关联远程仓库。

流程已验证通过,如有其他环境问题(如代理冲突),可参考 Git 代理配置指南 。

你的实践是技术进步的基石 ------ 每一次踩坑与突围,都在为更流畅的协作体验铺路。

相关推荐
sulikey5 小时前
从零配置一个规范的 Python Git 仓库(适用于 Gitee / GitHub)
git·python·pycharm·gitee·github
全栈小52 天前
【代码管理】在本地使用github和gitee之后,可能存在冲突,导致再次提交代码时提示Couldn‘t connect to server
gitee·github·代码管理工具
春生野草2 天前
Gituee
git·gitee
J2虾虾2 天前
WebStorm的项目绑定Git并上传到gitee
git·gitee·webstorm
71-32 天前
git 和 tortoisegit的快速使用教学(上传至gitee或GitHub)
git·gitee
71-33 天前
gitee——代码托管平台(进行托管所需的相关软件)
gitee
默默coding的程序猿4 天前
3.git的分支携带问题是什么?怎么解决?
java·git·python·svn·gitee·github·intellij-idea
胖咕噜的稞达鸭6 天前
二叉树搜索树插入,查找,删除,Key/Value二叉搜索树场景应用+源码实现
c语言·数据结构·c++·算法·gitee
puyaCheer6 天前
Android 13 启动的时候会显示一下logo,很不友好
android·gitee