服务器ssh运维规范以“安全、可控、可审计、可持续”为目标,强制密钥认证、禁用密码登录,分层控制访问权限,加固协议配置,并落实日志审计与应急响应机制。

服务器 SSH 运维规范不是一套固定模板,而是围绕“安全、可控、可审计、可持续”四个目标,结合组织实际制定的执行标准。它既要防住暴力破解、中间人攻击和权限滥用,也要保障日常运维效率不打折扣。
身份认证必须强制密钥,禁用密码登录
密码是最大薄弱点,所有生产环境应默认关闭密码认证。具体操作包括:
- 在 /etc/ssh/sshd_config 中设置:
PasswordAuthentication no、PubkeyAuthentication yes - 确保用户 ~/.ssh/authorized_keys 文件权限为
600,所在目录.ssh权限为700,家目录不能有写权限给组或其他人(sshd 会拒绝登录) - 密钥类型推荐 ed25519(速度快、安全性高),避免使用已淘汰的 DSA 或弱强度 RSA-1024
- 私钥必须加密存储(生成时加 passphrase),严禁明文裸存或上传到代码仓库
访问控制按需分层,不搞“一锁封门”
只允许必要的人、从可信的地方、用合规的方式接入,关键策略包括:
针对Linux系统,phpStudy团队推出全网首家linux docker容器面板,只要一个命令,快速安装面板,在面板里可以自行选择软件版本,可以方便的进行安全配置,就算没有Linux基础也可以快速搭建和管理PHP服务器环境!
- 限制登录用户:用
AllowUsers或AllowGroups明确放行账号,禁止root直接登录(设PermitRootLogin no) - 限定源 IP:通过
Match Address段或防火墙(如 iptables/nftables)只开放运维跳板机或办公网段的访问 - 区分环境:开发、测试、生产环境使用不同密钥对,密钥按区域/角色轮换(例如每季度更新一次生产密钥)
- 云环境建议结合元数据服务或 IAM 角色动态注入公钥,避免手动分发
服务端配置加固,堵住协议级漏洞
OpenSSH 默认配置偏宽松,需主动收紧:
- 协议版本:强制
Protocol 2,禁用 SSHv1 - 加密套件:禁用 CBC 模式、SHA-1、RSA-1024 等弱算法,推荐配置:
Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.comKexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521Macs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com - 会话安全:设置
LoginGraceTime 30(登录超时)、MaxAuthTries 3(失败上限)、ClientAliveInterval 300(保活检测)
操作留痕与应急响应机制不可缺
规范不只是“怎么连”,更是“连了做什么、出了问题怎么办”:
- 启用详细审计:确保
LogLevel VERBOSE或INFO,日志保存路径统一(如/var/log/auth.log),保留不少于 180 天 - 命令审计(可选但推荐):通过
sudo日志 +auditd或 shell wrapper 记录关键命令执行者、时间、参数 - 建立密钥吊销流程:员工离职或密钥泄露时,能快速从所有服务器
authorized_keys中移除对应公钥 - 保留应急通道:配置一个受限的备用登录方式(如带 IP 限制的单次密码+TOTP),避免主密钥失效导致锁死
不复杂但容易忽略——规范的生命力不在文档厚度,而在每次 ssh 登录前是否真校验了指纹,每次密钥更新后是否同步清理了旧公钥,每次配置变更后是否验证了连接可用性。落地靠检查清单,而不是靠自觉。










