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的提示卡住。记得替换下面的域名为自己的

- 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. 登陆并执行命令

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

- name: Run SSH Command
  run: ssh root@sijie.wang "echo 'Hello Github Actions' > actions.log"

文章原始链接:https://sijie.wang/posts/github-actions-ssh/

本站文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请保留原始链接