常用命令

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_key

ssh-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 内容,空字符串表示不设密码。