SSH 连接到 GitHub Actions 虚拟服务器环境

前言

本博客全网首发了 GitHub Actions 虚拟服务器评测,相信看过的小伙伴其实都很好奇,那些评测截图是怎么做到的?难道是能通过 SSH 连接?这篇文章将告诉你答案。

实际上 GitHub Actions 本身是不允许直接连接进行交互式操作,但有好事的开发者竟然另辟蹊径通过安装 tmate 来实现了 SSH 连接,并且制作了相关的 action 。这使得我们可以非常容易连接到 Actions 的虚拟环境中,相当于免费获得了20台 E5 2vCPU/7G RAM/90G SSD 配置的 VPS 。

NOTICE: 请勿用于恶意用途,造成的一切后果比如封号、中美关系恶化、原子弹爆炸、第三次世界大战等后果均与作者无关。

方案一

mxschmitt/action-tmate

第一个实现 tmate 连接 Actions 的 action ,但此方案在退出连接后不能进行到下一个步骤,所以在实际使用中没有多少价值,只能用于 SSH 连接。不过由于其开天辟地的作用,我决定把它放到第一位。

workflow 文件示例:

name: CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: Setup tmate session
      uses: mxschmitt/action-tmate@v1

方案二

csexton/debugger-action

此 action 作者受 mxschmitt/action-tmate 启发,同样是通过 tmate 连接,退出连接后可持续进行下一个步骤,能更好的应用到实际项目中使用。作者可能考虑到为 GitHub 节约资源,默认加了15分钟自动断开连接,不过可以通过执行touch /tmp/keepalive命令去解除。

TIPS: 博主在实际使用中发现,如果一段时间内(大概2分钟左右)不进行任何操作将会失去控制,有可能是 Actions 的限制措施或者是 tmate 本身的问题。

workflow 文件示例:

name: Ubuntu
on: [push]
jobs:
  Ubuntu:
    runs-on: ubuntu-latest
    steps:
    - name: Setup Debug Session
      uses: csexton/debugger-action@master

方案三

P3TERX/debugger-action

博主在实际使用中觉得以上方案的体验不很理想,于是决定自己开了坑。fork 了csexton/debugger-action 并进行了一些改进。比如优化了部分提示文案的显示逻辑,修改连接超时为30分钟,解决了失去控制的问题。后续会持续进行改进,以达到更好的使用体验。

workflow 文件示例:

name: Ubuntu
on:
  watch:
    types: [started]
jobs:
  Ubuntu:
    runs-on: ubuntu-latest
    steps:
    - name: SSH connection to Actions
      uses: p3terx/debugger-action@master


简单使用 | 点击查看

  • 新建仓库
  • 新建 workflow 文件
  • 粘贴代码
  • 点击star
  • 索然无味

尾巴

GitHub Actions 作为开发者一个小众的服务在经过博主写的一套编译 OpenWrt 的方案后有了一定热度,那么 SSH 连接方法必然会有好事者发现并公布,这就不可避免的会被滥用,这只是迟早的问题。最后经过深思熟虑还是决定把方法直接公布出来。

希望大家以学习研究的目的来使用,切勿用作其它恶意用途。


关注 GitHub Actions Channel 获得最新情报

相关 TG 群组:GitHub Actions Group

欢迎订阅我的 TG 频道,接收最新的文章推送和有趣的内容。加入 TG 群组,和小伙伴们一同交流、学习、成♂长。

添加新评论

评论列表