使用 SSH 连接 GitHub Action 服务器
奇技淫巧,请勿滥用
GitHub Actions 虚拟服务器(VM/VPS)评测(源自p3trex大佬):
https://p3terx.com/archives/github-actions-virtual-environment-simple-evaluation.html
实际上 GitHub Actions 本身是不允许直接连接进行交互式操作,但有好事的开发者竟然另辟蹊径通过安装 tmate 来实现了 SSH 连接,并且制作了相关的 action 。这使得我们可以非常容易连接到 Actions 的虚拟环境中,相当于免费获得了 20 台 E5 2vCPU/7G RAM/90G SSD 配置的 Linux VPS 和 5 台 macOS VPS。
tmate
GitHub项目地址:
https://github.com/mxschmitt/action-tmate
第一个实现 tmate 连接 Actions 的 action ,但此方案在退出连接后不能进行到下一个步骤,所以在实际使用中没有多少价值,且极易造成资源浪费,所以只能用于 SSH 连接。不过由于其开天辟地的作用,我决定把它放到第一位。
workflow 文件示例:
name: Ubuntu |
debugger-action
GitHub项目地址:
https://github.com/csexton/debugger-action
此 action 作者受 mxschmitt/action-tmate 启发,同样是通过 tmate 连接,退出连接后可持续进行下一个步骤,能更好的应用到实际项目中使用。作者可能考虑到为 GitHub 节约资源,默认加了 15 分钟自动断开连接,不过可以通过执行 touch /tmp/keepalive
命令去解除。
TIPS: 博主在实际使用中发现,如果一段时间内(大概2分钟左右)不进行任何操作将会失去控制,有可能是 Actions 的限制措施或者是 tmate 本身的问题。
workflow 文件示例:
name: Ubuntu |
ngrok
使用ngrok来穿透内网
注册ngrok
查看 Authtoken
前往 https://dashboard.ngrok.com/auth/your-authtoken
复制下来这一长串token,如我的就是(最后几位已打码)
1ry9Mln411aOpQrcrtCzLWYaBwl_5rQXwdRRcA14oXXoXoXoo
创建项目
在 GitHub 创建一个新的仓库
只需要填上仓库名字,点击下面的Creat repository
添加两个仓库secrets,一个是 NGROK_TOKEN
,一个是 SSH_PASSWORD
分别填入刚刚获取的token和你想要用的ssh密码
NGROK_TOKEN: 1ry9Mln411aOpQrcrtCzLWYaBwl_5rQXwdRRcA14oXXoXoXoo
SSH_PASSWORD:英文数字ssh密码
点击code, creating a new file
文件名填入ssh-server.sh
,内容复制以下
#!/bin/bash |
创建 workflow
点击Actions, set up a workflow yourself
名字填入ssh-server.yml
内容复制黏贴以下(这是最长时长6小时)
name: SSH Server |
启动github action
ssh中填入对应内容
ssh的密码填入刚刚设定的 SSH_PASSWORD
ActionsVM
https://github.com/P3TERX/ActionsVM
点击 Use this template (别fork)或者以下链接创建一个仓库
https://github.com/P3TERX/ActionsVM/generate
也是同样在settings中secrets填入NGROK_TOKEN
和SSH_PASSWORD
然后点击actions,选择Ubuntu(ngrok),点击运行run workflow,同上找到ssh连接信息并连接
服务器存活时间
服务器存活时长最长6小时,到时间会停止actions,可以rerun jobs重新运行,不过ssh信息都会改变
文章参考/引用自 P3TREX大佬 https://p3terx.com/archives/ssh-to-the-github-actions-virtual-server-environment.html
https://p3terx.com/archives/github-actions-virtual-environment-simple-evaluation.html
福儿fule https://www.wangfuchao.com/479/
csdn https://blog.csdn.net/alex_yangchuansheng/article/details/108313625