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

尝试通过Github Actions部署Laravel遇SSH认证错误求助

解决Github Actions部署Laravel时的SSH认证错误

错误信息:

2022/07/21 19:58:13 ssh.ParsePrivateKey: ssh: no key found
scp file to server.
drone-scp error:  error copy file to dest: xxx.xxx.xxx.xxx, error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain

排查与解决步骤:

  • 检查私钥格式与完整性
    确保使用的是PEM格式私钥(以-----BEGIN RSA PRIVATE KEY-----开头、-----END RSA PRIVATE KEY-----结尾),若为OpenSSH新格式(-----BEGIN OPENSSH PRIVATE KEY-----),可通过以下命令转换:

    ssh-keygen -p -m PEM -f /path/to/your/private/key
    

    粘贴到Github Secrets时要完整复制私钥内容,包括首尾标记行,避免多余换行或空格。

  • 验证Github Secrets配置
    确认仓库的Settings -> Secrets and variables -> Actions中已添加正确的私钥(如命名为SSH_PRIVATE_KEY),且在Workflow文件中正确引用:

    env:
      SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
    

    切勿将公钥误作为私钥填入Secrets。

  • 检查服务器SSH配置

    • 确认服务器目标用户的~/.ssh/authorized_keys文件已添加对应私钥的公钥,同时设置权限:chmod 600 ~/.ssh/authorized_keys、chmod 700 ~/.ssh
    • 检查/etc/ssh/sshd_config中开启了公钥认证:PubkeyAuthentication yes,并确保未禁用相关加密算法
    • 修改配置后重启sshd服务:sudo systemctl restart sshd
  • 核对drone-scp参数配置
    确保Workflow中drone-scp的参数正确,示例配置:

    - name: 部署到服务器
      uses: appleboy/scp-action@v0.1.4
      with:
        host: ${{ secrets.SSH_HOST }}
        username: ${{ secrets.SSH_USERNAME }}
        key: ${{ secrets.SSH_PRIVATE_KEY }}
        source: "."
        target: "/var/www/your-laravel-app"
    

    重点检查key、host、username参数是否正确配置。

内容的提问来源于stack exchange,提问作者Joan T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:45:42