通过SSH连接Git仓库需要几个步骤。以下是完整的设置和使用流程:

🔑 1. 生成SSH密钥对

生成新的SSH密钥

ssh-keygen -t rsa -b 4096 -C "your.email@example.com"

或者使用更现代的ed25519算法:

ssh-keygen -t ed25519 -C "your.email@example.com"

指定密钥文件名(可选)

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_github -C "your.email@example.com"

📋 2. 添加公钥到Git服务商

查看生成的公钥

cat ~/.ssh/id_rsa.pub
# 或者
cat ~/.ssh/id_ed25519.pub

复制公钥内容并添加到:

  • GitHub: Settings → SSH and GPG keys → New SSH key
  • GitLab: User Settings → SSH Keys → Add key
  • Gitee: 设置 → SSH公钥 → 添加公钥

🚀 3. 测试SSH连接

测试GitHub连接

ssh -T git@github.com

测试GitLab连接

ssh -T git@gitlab.com

测试Gitee连接

ssh -T git@gitee.com

成功的话会看到类似信息:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

🔧 4. 使用SSH克隆和操作仓库

克隆仓库

# GitHub
git clone git@github.com:username/repository.git

# GitLab  
git clone git@gitlab.com:username/repository.git

# Gitee
git clone git@gitee.com:username/repository.git

修改现有仓库的远程URL为SSH

# 查看当前远程URL
git remote -v

# 修改为SSH URL
git remote set-url origin git@github.com:username/repository.git

⚙️ 5. SSH配置文件(多账号管理)

如果你有多个Git账号,可以创建SSH配置文件:

创建配置文件

nano ~/.ssh/config

配置内容示例

# GitHub账号1
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa

# GitHub账号2  
Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_work

# GitLab
Host gitlab.com
    HostName gitlab.com
    User git
    IdentityFile ~/.ssh/id_rsa_gitlab

使用特定配置克隆

git clone git@github-work:company/repository.git

🛠️ 6. 常见问题解决

SSH Agent管理密钥

# 启动ssh-agent
eval "$(ssh-agent -s)"

# 添加密钥到agent
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_ed25519

# 查看已添加的密钥
ssh-add -l

权限问题

# 设置正确的文件权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub

调试连接问题

ssh -vT git@github.com

💡 优势对比

方式 优势 劣势
HTTPS 简单易用,无需配置 每次需要输入用户名密码
SSH 无需重复认证,更安全 初始设置稍复杂

SSH方式特别适合频繁推送代码的开发场景,一次配置终身使用!

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐