Github Actions配置SSH部署
本文介绍了如何配置GitHub Actions工作流,实现代码推送后自动构建、推送Docker镜像并部署到远程服务器。通过定义工作流文件、配置Secrets和生成专用SSH密钥,完成从代码到部署的自动化流程。
本文介绍了如何配置GitHub Actions工作流,实现代码推送后自动构建、推送Docker镜像并部署到远程服务器。通过定义工作流文件、配置Secrets和生成专用SSH密钥,完成从代码到部署的自动化流程。
首先配置.github/workflow/deploy.yml
:
name: Build Push and Deploy
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
environment: production
steps:
# 检出代码
- name: Checkout code
uses: actions/checkout@v3
# 设置 Docker Buildx (用于支持多平台构建)
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# 登录到 GitHub Container Registry (GHCR)
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{
别忘了在github的仓库配置中添加相应的secrets,其中SSH_PRIVATE_KEY
的内容是~/.ssh/github_action_key
的内容。
然后在服务器上,生成专属公钥,并添加到授权组:
ssh-keygen -t rsa -b 4096 -C "github_action" -f ~/.ssh/github_action_key
cd ~/.ssh
cat github_action_key.pub >> ~/.ssh/authorized_keys
编辑~/.ssh/authorized_keys
文件,添加授权命令即可:
command="/path/to/deploy.sh" ssh-rsa AAAA...