Files
Obsidian/工具相关/Git SSH 免密拉取代码配置指南.md
2026-11-05 14:35:04 +08:00

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 服务器

操作步骤:

  1. 登录公司的 Git 平台(如 GitLab、Gitea 等)
  2. 进入个人设置 -> SSH Keys (SSH 公钥)
  3. 将第2步复制的整行内容粘贴进去
  4. 保存设置

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)

排查步骤:

  1. 确认公钥已正确添加到Git服务器
  2. 检查私钥是否已加载:ssh-add -l
  3. 验证SSH配置:ssh -v git@<服务器IP>

小贴士

  • 换电脑/重装系统时: 只需重新走一遍这套流程
  • 密钥管理: 建议为不同设备生成不同的密钥对
  • 安全性: 私钥文件请妥善保管,不要泄露
  • 路径问题: 注意检查实际的用户目录路径