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

GitHub Actions scp-action步骤失败,本地同SSH密钥可正常运行

解决GitHub Actions中scp-action提示"can't connect without a private SSH key or password"的问题

以下是针对Hostinger VPS场景的可行解决方案:

1. 修复GitHub Secrets的密钥格式

GitHub Secrets保存多行文本时,直接粘贴私钥可能丢失换行符,导致action无法识别完整密钥。

  • 打开本地私钥文件,确认包含完整换行(包括-----BEGIN OPENSSH PRIVATE KEY-----和-----END OPENSSH PRIVATE KEY-----之间的每一行)
  • 将私钥复制到记事本确认换行正常后,再粘贴到GitHub仓库的VPS_DEPLOY_USER_KEY Secret中,避免直接从终端复制导致格式错乱。

2. 显式指定密钥格式

部分版本的scp-action默认不自动识别OpenSSH格式密钥,需显式声明:
修改scp-action步骤配置,添加key_format: openssh参数:

- name: Deploy docker-compose to VPS
  if: github.event_name != 'pull_request'
  uses: appleboy/scp-action@master
  with:
    host: ${{ secrets.VPS_HOST }}
    username: ${{ secrets.VPS_USER }}
    key: ${{ secrets.VPS_DEPLOY_USER_KEY }}
    key_format: openssh  # 新增该行指定密钥格式
    port: ${{ secrets.VPS_SSH_PORT }}
    source: "docker-compose.yml"
    target: "${{ secrets.VPS_DEPLOY_PATH }}/"

3. 使用稳定版本的action

当前使用的master分支可能存在不稳定更新,建议替换为指定稳定版本(与ssh-action版本匹配):

uses: appleboy/scp-action@v0.1.4  # 替换原master分支为稳定版本

4. 验证VPS的SSH配置

确保Hostinger VPS开启了密钥登录:

  • 登录VPS,编辑/etc/ssh/sshd_config文件,确认PubkeyAuthentication yes(若被注释则取消注释)
  • 重启sshd服务:sudo systemctl restart sshd

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 09:57:02