2.2 KiB
2.2 KiB
当使用 git clone 遇到 Permission denied 或一直提示输入密码时,通常是因为本地没有配置 SSH 密钥。请按以下步骤操作:
1. 检查并生成 SSH 密钥
检查现有密钥
ls -al ~/.ssh
查看是否有 id_ed25519 或 id_rsa 等文件。
生成新密钥
ssh-keygen -t ed25519 -C "your_email@example.com"
注意:
- 执行后全程按回车键即可
- 不要随意输入其他字符作为文件名
- 如果使用自定义用户目录,路径会是
/personal/你的用户名/.ssh/id_ed25519
2. 获取公钥内容
cat ~/.ssh/id_ed25519.pub
关键步骤:
- 打印出以
ssh-ed25519开头的公钥内容 - 完整复制整行内容(包括开头和结尾)
- 如果路径不同,请使用实际路径
3. 添加公钥到远程 Git 服务器
操作步骤:
- 登录公司的 Git 平台(如 GitLab、Gitea 等)
- 进入个人设置 -> SSH Keys (SSH 公钥)
- 将第2步复制的整行内容粘贴进去
- 保存设置
4. 启动代理并加载私钥
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
注意事项:
- 如果使用自定义路径,需要指定完整绝对路径
- 例如:
/personal/donghongzhi/.ssh/id_ed25519 - 如果遇到代理连接问题,先执行
eval "$(ssh-agent -s)"
5. 测试与克隆
测试连接(可选)
ssh -T git@<公司Git服务器IP>
正常拉取代码
git clone git@<公司Git服务器IP>:<项目路径>.git
常见问题处理
问题1:代理连接失败
错误信息: Could not open a connection to your authentication agent
解决方案:
eval "$(ssh-agent -s)"
问题2:权限被拒绝
错误信息: Permission denied (publickey)
排查步骤:
- 确认公钥已正确添加到Git服务器
- 检查私钥是否已加载:
ssh-add -l - 验证SSH配置:
ssh -v git@<服务器IP>
小贴士
- 换电脑/重装系统时: 只需重新走一遍这套流程
- 密钥管理: 建议为不同设备生成不同的密钥对
- 安全性: 私钥文件请妥善保管,不要泄露
- 路径问题: 注意检查实际的用户目录路径