ssh-keygen
使用 ssh-keygen 生成私钥和公钥。
// ssh-keygen -t ed25519 -C "youremail@example.com"
ssh-keygen -t rsa -C "youremail@example.com"
在 ~/.ssh 目录下可以看到 id_rsa 、id_rsa.pub 等文件,其中私钥就是 id_rsa ,公钥就是 id_rsa.pub ,这就是密钥对,一个可用于加密,另一个可用于解密。
当有多个 ssh-key 配置时,在使用 ssh-keygen 创建时重新命名(如:~/.ssh/id_rsa_gitee ),避免覆盖。
vi ~/.ssh/config
# github 配置
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github
# gitee 配置
Host gitee
HostName gitee.com
User git
IdentityFile ~/.ssh/id_rsa_gitee
# ubuntu
Host ubuntu
HostName 192.168.0.1
User root
IdentityFile ~/.ssh/id_rsa_ubuntu
使用 ssh-add 将密钥添加到 ssh-agent:
ssh-add ~/.ssh/id_rsa_github
远程免密码登录服务器时,可使用 scp 命令将公钥传至服务器 ~/.ssh/authorized_keys 。
scp
scp 用于本地和远程文件传输。
本地拷贝到远程:
scp -r local_folder remote_username@remote_ip:remote_folder
远程拷贝到本地:
scp -r remote_ip:remote_folder local_folder
github actions
创建配置文件
在仓库根目录下,创建 .github/workflows/main.yml 文件,该 yml 文件就是你需要执行操作的一些配置。
详细配置
例如,将代码同步至 gitee ,并部署到 gitee pages 和自己的服务器。
name: CI
on:
push:
branches:
- develop
paths-ignore:
- LICENSE
- README.md
- 'doc/**'
- 'configs/**'
- 'scripts/**'
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: 拉取代码
uses: actions/checkout@v3
- name: 同步到 gitee
uses: wearerequired/git-mirror-action@master
env:
SSH_PRIVATE_KEY: ${{ secrets.GITEE_SERVER_KEY }}
with:
source-repo: git@github.com:ahyiru/ihuxy.git
destination-repo: git@gitee.com:yiru/ihuxy.git
- name: 打包
run: npm i && npm run build
- name: 部署到 Gitee Pages
uses: yanglbme/gitee-pages-action@main
with:
gitee-username: yiru
gitee-password: ${{ secrets.GITEE_SERVER_PASSWORD }}
gitee-repo: yiru/ihuxy
branch: develop
- name: 部署到服务器
uses: easingthemes/ssh-deploy@main
env:
SSH_PRIVATE_KEY: ${{ secrets.IHUXY_SERVER_KEY }}
ARGS: "-rltgoDzvO --delete"
SOURCE: "app/build/"
REMOTE_HOST: ${{ secrets.IHUXY_SERVER_HOST }}
REMOTE_PORT: ${{ secrets.IHUXY_SERVER_PORT }}
REMOTE_USER: ${{ secrets.IHUXY_SERVER_USERNAME }}
TARGET: ${{ secrets.IHUXY_SERVER_DIR }}
- name: 重启服务
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.IHUXY_SERVER_HOST }}
username: ${{ secrets.IHUXY_SERVER_USERNAME }}
key: ${{ secrets.IHUXY_SERVER_KEY }}
script: reboot
详细配置可查看 官方文档
配置GitHub仓库
-
配置
SSH keys,将id_rsa_github.pub里的内容拷贝到key框,title自己随便取。 -
打开你的网站代码仓库,点击
Settings标签,找到Secrets,点击下面的Actions添加参数。
rsa 密钥配置
github actions
在 GitHub 仓库添加 Actions :
name 填写自定义的变量名,如 GITEE_SERVER_KEY。
将 id_rsa_gitee 里的内容拷贝到 value 框,包含 BEGIN 、 END 内容。
gitee
登录 gitee ,选择设置 -> ssh 公钥,将 id_rsa_gitee.pub 的内容复制到公钥的输入框里,公钥的标题可以自己填写。
服务器
将公钥内容拷贝到服务器 ~/.ssh/authorized_keys 文件里面。