GitHub Actions 执行自定义SSH命令

观察发现Actions的机器,连接国内服务器比CircleCI的网络要更稳定,更适合做部署在国内的流水线。

总共分两步,第一步是用rsa密钥实现自动登陆远程ssh服务器,第二步才是执行命令。

1. 配置rsa密钥自动登陆

首先是生成ssh使用的对称rsa密钥,并把公钥保存在远程服务器的authorized_keys文件中,这里就不详细描述了。其中,私钥需要进入Github对应的Repo,点击Settings,Secrets,新增一个名为SSH_PRIVATE_KEY的键用来保存rsa私钥。

然后引入别人做好的actions脚本webfactory/ssh-agent@v0.1.1,读取私钥。

还有一步是配置known-hosts,否则会出现一个是否yes的提示卡住。记得替换下面的域名为自己的

1
2
3
4
5
- uses: webfactory/ssh-agent@v0.1.1
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Setup knownhosts
run: ssh-keyscan sijie.wang >> ~/.ssh/known_hosts

2. 登陆并执行命令

引号内的内容替换为自己的命令

1
2
- name: Run SSH Command
run: ssh root@sijie.wang "echo 'Hello Github Actions' > actions.log"
文章作者: 王思捷
文章链接: https://sijie.wang/2019/10/18/github-actions-ssh/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 我爱平铺