如何在多台服务器上设置SSH密钥的有效期?
美国、香港服务器
如何在多台服务器上设置SSH密钥的有效期?
05-20 来源:
多台服务器统一设置 SSH 密钥有效期
核心方案
统一在公钥头部加 expiry-time 时间前缀,格式通用、全服务器兼容,无需改 SSH 主配置,到期自动失效。
时间格式:YYYYMMDDHHMMSS
一、统一编写带有效期的公钥模板
示例:设置密钥有效期到 2026-12-31 23:59:59
plaintext
expiry-time=20261231235959 ssh-rsa 你的完整公钥内容
快速计算到期时间(示例)
以当前 2026-05-20 为例,180 天到期:20261116235959
plaintext
expiry-time=20261116235959 ssh-rsa 公钥
二、批量分发部署(两种方式)
方式 1:免交互批量推送(已互通密钥前提下)
先把带有效期的完整公钥存为本地文件
bash
运行
echo "expiry-time=20261116235959 ssh-rsa AAAxxx..." > key_with_expire.pub
批量推送到所有服务器对应用户
bash
运行
# 遍历服务器IP列表
for ip in 192.168.1.10 192.168.1.11 192.168.1.12
do
ssh root@$ip "
mkdir -p /home/用户名/.ssh
cat > /home/用户名/.ssh/authorized_keys < EOF
$(cat key_with_expire.pub)
EOF
chmod 700 /home/用户名/.ssh
chmod 600 /home/用户名/.ssh/authorized_keys
chown -R 用户名:用户名 /home/用户名/.ssh
"
done
方式 2:单台快速写入(手动批量操作)
登录任意一台服务器,执行:
bash
运行
# 切换目标用户
su - 用户名
# 写入带时效公钥
cat > ~/.ssh/authorized_keys <
expiry-time=20261116235959 ssh-rsa 粘贴你的公钥
EOF
# 强制修正权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R $USER:$USER ~/.ssh
三、全局统一规则(所有服务器统一生效)
1. 统一开启密钥时效校验
所有服务器 /etc/ssh/sshd_config 确保开启(默认已支持)
ini
PubkeyAuthentication yes
# 开启密钥过期校验(新版openssh默认启用)
PermitUserEnvironment no
重启生效
bash
运行
systemctl restart sshd
2. 统一禁用密码登录(全局安全基线)
ini
PasswordAuthentication no
ChallengeResponseAuthentication no
PermitEmptyPasswords no
四、批量轮换 / 续期密钥
重新生成新时效公钥(修改expiry-time后面时间)
再次用上面批量脚本覆盖所有服务器 authorized_keys
旧密钥自动失效,新时效直接生效
五、到期效果
所有服务器统一触发:
Authentication refused: bad expiration time
直接拒绝登录,无需逐台删除密钥。
六、企业级多服最优方案(推荐)
搭建SSH CA 证书中心统一签发证书
签发时统一指定有效期(30 天 / 90 天 / 180 天)
所有服务器统一信任 CA 公钥
用户只用一份客户端证书,全服通用、统一到期
签发命令示例(统一 90 天有效期)
bash
运行
ssh-keygen -s ca私钥 -I 标识名 -n 用户名 -V +90d 客户端公钥
七、常用时间速填
30 天:20260619235959
90 天:20260818235959
1 年:20270520235959
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快
上一篇:没有了 下一篇:如何设置SSH密钥的有效期?