You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过GitHub使用不同SSH密钥部署多应用的问题排查与解决

指定特定SSH密钥克隆代码的方法

临时指定密钥克隆

直接在克隆命令中通过GIT_SSH_COMMAND指定密钥文件路径,适合单次操作:

GIT_SSH_COMMAND="ssh -i /home/your-user/.ssh/frontend-key" git clone git@github.com:your-username/frontend-repo.git

持久化配置(通过SSH Config)

通过配置~/.ssh/config,让特定仓库自动匹配指定密钥,步骤如下:

  1. 创建或编辑SSH配置文件,确保权限安全:
    touch ~/.ssh/config && chmod 600 ~/.ssh/config
    
  2. 在文件中添加前端仓库的专属配置:
    Host github-frontend
        HostName github.com
        User git
        IdentityFile ~/.ssh/frontend-key
        IdentitiesOnly yes # 强制使用指定密钥,避免自动尝试其他密钥
    
  3. 后续操作前端仓库时,使用自定义Host别名即可自动匹配密钥:
    git clone git@github-frontend:your-username/frontend-repo.git
    
更简便的多应用SSH部署方案

方案1:使用GitHub个人访问令牌(PAT)

放弃SSH密钥,改用HTTPS协议克隆,用PAT作为认证凭据:

  • 在GitHub设置的「Developer settings」→「Personal access tokens」生成带仓库读写权限的PAT
  • 克隆命令示例:
    git clone https://your-pat-here@github.com/your-username/repo.git
    

一个PAT可授权访问多个仓库,无需处理密钥冲突,管理更简单。

方案2:使用机器用户

创建专门的GitHub机器用户,给该用户分配前后端仓库的访问权限,生成一个SSH密钥绑定到机器用户账户(而非仓库部署密钥)。服务器使用这个密钥即可同时访问两个仓库,不用为每个仓库单独生成密钥。

方案3:SSH代理转发

如果本地机器已持有能访问两个仓库的SSH密钥,可通过代理转发让服务器复用本地密钥:

  • 连接服务器时添加-A参数开启代理转发:
    ssh -A your-user@your-vultr-ip
    
  • 服务器上克隆仓库时,会自动使用本地机器的SSH密钥完成认证,无需在服务器存储多份密钥。

内容的提问来源于stack exchange,提问作者Yusuf ÇAKIRCA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:30:17