Repolode
appleboy

appleboy/ssh-action

一个 GitHub Action,可在 CI/CD 工作流中通过 SSH 在远程服务器上执行命令。

Star
6,225
Fork
679
未关闭 Issue
32
最近提交
2个月前

这是什么?

SSH for GitHub Actions 让工作流通过 SSH 登录一台或多台远程主机,并在其上执行 shell 命令或脚本文件。它常用于在 GitHub Actions 流水线中部署代码、重启服务或执行服务器维护任务。该 Action 基于 Golang 开发,底层使用 drone-ssh。

连接方面支持密码和私钥认证、自定义端口、IPv4/IPv6 协议选择、主机指纹校验,并可通过代理(跳板机)配置连接。单个步骤可以指定多台主机,既可以并行执行,也可以同步执行。环境变量可以传递给远程脚本,标准输出也能捕获为步骤输出供后续步骤使用。

仓库中还包含 RSA 与 ED25519 密钥的生成说明、旧算法的 OpenSSH 兼容性处理,以及命令找不到等常见问题的排查方法。

核心功能

  • 01在远程主机上执行多条命令或脚本文件
  • 02支持密码或私钥认证,并可设置私钥口令
  • 03可同时部署到多台主机,支持并行或同步执行
  • 04通过独立的代理配置经跳板机连接
  • 05将环境变量传递给远程脚本
  • 06捕获命令输出,供后续工作流步骤使用

适用场景

  • 代码推送后将构建产物部署到 VPS 或自有服务器
  • 在 CI 中远程重启服务或执行数据库迁移
  • 在一个工作流步骤中对多台主机批量运行维护脚本
  • 从 GitHub 托管的 runner 连接位于堡垒机后的内网服务器

快速上手

  1. 1

    在工作流中添加 appleboy/ssh-action 步骤,并配置 host、username、key 和 script 输入

  2. 2

    将 HOST、USERNAME、KEY 和 PORT 保存为 GitHub Secrets,并在步骤中引用

  3. 3

    推送代码以触发工作流并执行远程命令

使用前须知

  • 它只能在 GitHub Actions 工作流中运行,不是独立的命令行工具。
  • 远程主机必须允许来自 GitHub 运行器的 SSH 连接,并已配置密钥或密码登录。

标签

常见问题

ssh-action 是什么?
一个 GitHub Action,可在 CI/CD 工作流中通过 SSH 在远程服务器上执行命令。 SSH for GitHub Actions 让工作流通过 SSH 登录一台或多台远程主机,并在其上执行 shell 命令或脚本文件。它常用于在 GitHub Actions 流水线中部署代码、重启服务或执行服务器维护任务。该 Action 基于 Golang 开发,底层使用 drone-ssh。
ssh-action 可以免费使用吗?用的什么许可证?
ssh-action 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
ssh-action 还在维护吗?
半年内有更新。ssh-action 最近一次提交是在 2026年8月16日。
ssh-action 适合用来做什么?
代码推送后将构建产物部署到 VPS 或自有服务器 在 CI 中远程重启服务或执行数据库迁移 在一个工作流步骤中对多台主机批量运行维护脚本 从 GitHub 托管的 runner 连接位于堡垒机后的内网服务器
ssh-action 怎么安装和运行?
在工作流中添加 appleboy/ssh-action 步骤,并配置 host、username、key 和 script 输入 将 HOST、USERNAME、KEY 和 PORT 保存为 GitHub Secrets,并在步骤中引用 推送代码以触发工作流并执行远程命令
在哪里获取 ssh-action?
源代码和安装说明在 GitHub 上:https://github.com/appleboy/ssh-action

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目