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

Github Actions部署DigitalOcean Docker服务时出现SSH权限拒绝错误

问题排查与解决步骤

  • 检查GitHub Actions的SSH私钥配置
    你本地能正常连接是因为本地存储了对应服务器root用户的SSH私钥,但GitHub Actions的默认运行环境没有这组密钥,需要手动配置:
    1. 打开对应GitHub仓库页面,进入「Settings」→「Secrets and variables」→「Actions」
    2. 点击「New repository secret」,名称设为SSH_PRIVATE_KEY,值粘贴你本地~/.ssh/id_rsa(或者你用来连接服务器的对应私钥文件)的全部内容
    3. 在你的workflow文件中添加加载私钥的步骤,示例代码如下:
    - name: 加载SSH私钥
      uses: shimataro/ssh-key-action@v2
      with:
        key: ${{ secrets.SSH_PRIVATE_KEY }}
        known_hosts: '147.182.255.130'
    
  • 检查服务器root用户的密钥授权
    确认你本地使用的公钥已经添加到服务器/root/.ssh/authorized_keys文件中,且对应文件权限配置正确:
    chmod 700 /root/.ssh
    chmod 600 /root/.ssh/authorized_keys
    
  • 修正sshd配置冲突项
    你当前sshd配置中UseLogin yes和公钥认证存在兼容性问题,会导致公钥认证失败,建议修改为:
    UseLogin no
    
    修改后重启sshd服务生效:
    sudo systemctl restart sshd
    
  • 密码登录的适配方案
    如果你不想用密钥登录,要在Actions中使用密码登录,需要先安装sshpass工具,再调整执行命令:
    - name: 安装sshpass
      run: sudo apt update && sudo apt install -y sshpass
    - name: 部署服务
      run: |
        sshpass -p ${{ secrets.SSH_ROOT_PASSWORD }} scp -o StrictHostKeyChecking=no -r ./.env ./docker-compose.prod.yml root@147.182.255.130:/app
        sshpass -p ${{ secrets.SSH_ROOT_PASSWORD }} ssh -o StrictHostKeyChecking=no root@147.182.255.130 << 'ENDSSH'
          cd /app
          source .env
          docker login ghcr.io -u $NAMESPACE -p $PERSONAL_ACCESS_TOKEN
          docker pull $WEB_IMAGE
          docker pull $NGINX_IMAGE
          docker-compose -f docker-compose.prod.yml up -d
        ENDSSH
      env:
        NAMESPACE: ${{ secrets.GHCR_NAMESPACE }}
        PERSONAL_ACCESS_TOKEN: ${{ secrets.GHCR_PAT }}
        WEB_IMAGE: ghcr.io/$(echo $GITHUB_REPOSITORY | tr '[:upper:]' '[:lower:]')/web
        NGINX_IMAGE: ghcr.io/$(echo $GITHUB_REPOSITORY | tr '[:upper:]' '[:lower:]')/nginx
    
    注意需要提前把root用户的登录密码添加到仓库Secrets中,名称设置为SSH_ROOT_PASSWORD。

内容的提问来源于stack exchange,提问作者Joseph Adam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:42:03