常用命令
tar --exclude='logs' --exclude='crash-reports' --exclude='journeymap' --exclude='local' -czvf server_backup.tar.gz ./*--exclude 排除不需要压缩的文件夹
逐个拆解这条命令:
ssh-keygen -t ed25519 -C "github-actions-deploy" -f deploy_keyssh-keygen
生成 SSH 密钥对(一对:公钥 + 私钥)的工具,SSH 自带,不需要额外安装。
-t ed25519
-t = type,指定密钥算法。
ed25519 是一种基于椭圆曲线的现代加密算法,相比传统的 RSA:
- 密钥更短(生成的文件更小)
- 计算速度更快
- 安全性同等或更高
常见可选值对比:
| 算法 | 说明 |
|---|---|
ed25519 | 推荐首选,现代、快、安全,除非要连接非常老旧的服务器(不支持它)否则都用这个 |
rsa | 传统兼容性最好,如果要用建议加 -b 4096 指定 4096 位长度 |
ecdsa | 也是椭圆曲线,但不如 ed25519 常用 |
-C "github-actions-deploy"
-C = comment,给这个密钥加一个注释/备注,纯粹是给人看的标识,不影响密钥本身的加密强度或功能。
这个注释会出现在生成的公钥文件(.pub)末尾,比如打开 deploy_key.pub 会看到:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... github-actions-deploy作用:当你在服务器的 ~/.ssh/authorized_keys 里堆了好多个公钥时,能一眼看出哪个是干嘛用的(比如区分"我的笔记本""CI 部署用""同事的电脑"),方便日后管理和吊销。
不写 -C 的话,默认会用 你的用户名@主机名 作为注释,写清楚一点的用途说明会更好维护。
-f deploy_key
-f = file,指定生成的密钥文件名(路径)。
执行后会在当前目录生成两个文件:
deploy_key ← 私钥(绝对不能泄露,只能放 GitHub Secrets)
deploy_key.pub ← 公钥(可以公开,放到服务器的 authorized_keys 里)不写 -f 的话,会走交互式流程,默认存到 ~/.ssh/id_ed25519,这里我们特意指定一个独立文件名,避免覆盖你自己电脑上已有的默认密钥(比如你自己平时用的 id_ed25519)。
补充:还有个隐藏的交互点
正常执行这条命令后,它还会问你:
Enter passphrase (empty for no passphrase):这是给私钥再加一层密码保护。对于 CI/CD 用途,一般直接回车留空(不设密码),因为 GitHub Actions 是自动化运行,没办法手动输入密码解锁私钥。如果设了密码,配置起来会更复杂(需要额外处理密码输入)。
如果想在命令行一次性跳过交互(比如写脚本自动生成),可以加上 -N "":
ssh-keygen -t ed25519 -C "github-actions-deploy" -f deploy_key -N ""-N 就是直接指定 passphrase 内容,空字符串表示不设密码。