SSH Key Action 使用教程
项目介绍
SSH Key Action 是一个 GitHub Action,用于在 CI/CD 流程中自动生成 SSH 密钥对,并将生成的公钥添加到指定的 SSH 服务器或 Git 仓库中。这个 Action 特别适用于需要自动化部署和访问私有仓库的场景。
项目快速启动
1. 创建 GitHub Actions Workflow 文件
在你的 GitHub 仓库中,创建一个 .github/workflows/deploy.yml
文件,并添加以下内容:
name: Deploy with SSH Key
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Generate SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_PRIVATE_KEY }}
known_hosts: ${{ secrets.KNOWN_HOSTS }}
- name: Deploy to server
run: |
ssh user@your-server.com 'cd /path/to/repo && git pull'
2. 配置 Secrets
在 GitHub 仓库的 Settings
-> Secrets
中,添加以下 Secrets:
SSH_PRIVATE_KEY
: 你的 SSH 私钥。KNOWN_HOSTS
: 你的 SSH 服务器的 known_hosts 内容。
3. 触发 Workflow
当你推送代码到 main
分支时,GitHub Actions 将自动生成 SSH 密钥并执行部署命令。
应用案例和最佳实践
应用案例
- 自动化部署: 使用 SSH Key Action 自动生成 SSH 密钥,并将代码部署到远程服务器。
- 访问私有仓库: 在 CI/CD 流程中,使用生成的 SSH 密钥访问私有 Git 仓库。
最佳实践
- 安全存储密钥: 使用 GitHub Secrets 存储 SSH 密钥,避免密钥泄露。
- 最小权限原则: 为 SSH 密钥配置最小权限,仅允许执行必要的操作。
- 定期轮换密钥: 定期更换 SSH 密钥,增强安全性。
典型生态项目
- GitHub Actions: 用于定义和运行 CI/CD 工作流。
- Docker: 用于容器化部署,确保环境一致性。
- Ansible: 用于自动化服务器配置和管理。
- Terraform: 用于基础设施即代码,自动化资源管理。