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

Github Action部署至Lightsail遇dial tcp i/o timeout故障求助

Github Action SSH部署到Amazon Lightsail出现I/O超时问题(已排除脚本、密钥、本地连接问题)

问题详情

我配置了通过SSH将代码部署至Amazon Lightsail服务器的Github Action,此前运行正常,但突然开始出现I/O错误并失败,连续24小时多次尝试均失败。注释脚本中所有内容后仍报错,确定问题不在脚本中,是无法连接到服务器,未执行到脚本环节。

输出信息

Run appleboy/ssh-action@master
/usr/bin/docker run --name ea425b117d14f49c9448e1ae86bb8e0dfd290d_f25ed1 --label ea425b --workdir /github/workspace --rm -e "INPUT_HOST" -e "INPUT_USERNAME" -e "INPUT_KEY" -e "INPUT_PORT" -e "INPUT_SCRIPT" -e "INPUT_PASSPHRASE" -e "INPUT_PASSWORD" -e "INPUT_SYNC" -e "INPUT_USE_INSECURE_CIPHER" -e "INPUT_CIPHER" -e "INPUT_TIMEOUT" -e "INPUT_COMMAND_TIMEOUT" -e "INPUT_KEY_PATH" -e "INPUT_FINGERPRINT" -e "INPUT_PROXY_HOST" -e "INPUT_PROXY_PORT" -e "INPUT_PROXY_USERNAME" -e "INPUT_PROXY_PASSWORD" -e "INPUT_PROXY_PASSPHRASE" -e "INPUT_PROXY_TIMEOUT" -e "INPUT_PROXY_KEY" -e "INPUT_PROXY_KEY_PATH" -e "INPUT_PROXY_FINGERPRINT" -e "INPUT_PROXY_CIPHER" -e "INPUT_PROXY_USE_INSECURE_CIPHER" -e "INPUT_SCRIPT_STOP" -e "INPUT_ENVS" -e "INPUT_DEBUG" -e "HOME" -e "GITHUB_JOB" -e "GITHUB_REF" -e "GITHUB_SHA" -e "GITHUB_REPOSITORY" -e "GITHUB_REPOSITORY_OWNER" -e "GITHUB_REPOSITORY_OWNER_ID" -e "GITHUB_RUN_ID" -e "GITHUB_RUN_NUMBER" -e "GITHUB_RETENTION_DAYS" -e "GITHUB_RUN_ATTEMPT" -e "GITHUB_REPOSITORY_ID" -e "GITHUB_ACTOR_ID" -e "GITHUB_ACTOR" -e "GITHUB_TRIGGERING_ACTOR" -e "GITHUB_WORKFLOW" -e "GITHUB_HEAD_REF" -e "GITHUB_BASE_REF" -e "GITHUB_EVENT_NAME" -e "GITHUB_SERVER_URL" -e "GITHUB_API_URL" -e "GITHUB_GRAPHQL_URL" -e "GITHUB_REF_NAME" -e "GITHUB_REF_PROTECTED" -e "GITHUB_REF_TYPE" -e "GITHUB_WORKFLOW_REF" -e "GITHUB_WORKFLOW_SHA" -e "GITHUB_WORKSPACE" -e "GITHUB_ACTION" -e "GITHUB_EVENT_PATH" -e "GITHUB_ACTION_REPOSITORY" -e "GITHUB_ACTION_REF" -e "GITHUB_PATH" -e "GITHUB_ENV" -e "GITHUB_STEP_SUMMARY" -e "GITHUB_STATE" -e "GITHUB_OUTPUT" -e "RUNNER_OS" -e "RUNNER_ARCH" -e "RUNNER_NAME" -e "RUNNER_TOOL_CACHE" -e "RUNNER_TEMP" -e "RUNNER_WORKSPACE" -e "ACTIONS_RUNTIME_URL" -e "ACTIONS_RUNTIME_TOKEN" -e "ACTIONS_CACHE_URL" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/carboncalc/carboncalc":"/github/workspace" ea425b:117d14f49c9448e1ae86bb8e0dfd290d

======CMD======
# cd /opt/bitnami/drupal
# git pull origin main
# composer -n install
# if [ $? -ne 0 ]; then 
#   exit 1 
# fi
# drush updb
# drush cr

======END======
372023/01/18 11:24:51 dial tcp 104.21.26.173:22: i/o timeout

已尝试操作

  • 使用ubuntu-latest和ubuntu-20.04 runner,结果一致
  • 本地可正常SSH连接服务器,secrets中的密钥未变更
  • 服务器磁盘空间充足
  • 排除了SSH密钥错误、端口关闭、IP变更等常见问题

需求

  1. 如何在appleboy/ssh-action中增加超时时间
  2. 其他可能的排查方向和解决方案

解决方法

1. 增加SSH连接超时时间

在appleboy/ssh-action的配置中,通过timeout参数设置连接超时(单位:秒),默认超时较短,可尝试延长至60秒或更久:

- name: Deploy to Lightsail
  uses: appleboy/ssh-action@master
  with:
    host: ${{ secrets.SSH_HOST }}
    username: ${{ secrets.SSH_USER }}
    key: ${{ secrets.SSH_KEY }}
    timeout: 60  # 设置连接超时时间为60秒
    script: |
      # 你的部署脚本

同时可设置command_timeout参数,控制单条命令的执行超时时间:

command_timeout: 120  # 命令执行超时120秒

2. 排查Github Actions Runner的网络拦截

由于本地能连接但Runner无法连接,大概率是Github的Runner IP段被Lightsail的安全组(Security Groups)拦截:

  • 登录Lightsail控制台,检查安全组的入站规则,临时开放所有IP(0.0.0.0/0)的22端口测试
  • 如果测试通过,说明是IP拦截问题,需要将Github Actions的官方IP段加入白名单(Github会定期更新IP范围)

3. 验证DNS解析正确性

错误中的IP 104.21.26.173可能是域名解析后的地址,确认该IP是否为Lightsail服务器的正确公网IP。可在Runner中添加步骤验证解析:

- name: Resolve host IP
  run: nslookup ${{ secrets.SSH_HOST }}

4. 开启Debug模式获取详细日志

开启ssh-action的debug模式,获取连接过程的详细日志,帮助定位问题:

- name: Deploy with debug
  uses: appleboy/ssh-action@master
  with:
    host: ${{ secrets.SSH_HOST }}
    username: ${{ secrets.SSH_USER }}
    key: ${{ secrets.SSH_KEY }}
    debug: true  # 开启debug模式
    script: |
      # 脚本内容

5. 切换到稳定版本的SSH Action

当前使用master分支可能存在兼容性问题,尝试指定稳定版本:

uses: appleboy/ssh-action@v0.1.7

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:45:49