ssh运维安全管理标准化工作流围绕“谁在连、凭什么连、连上能做什么、连的过程有没有被记录”四问构建闭环:统一跳板机为唯一入口,强制密钥+mfa认证,按角色实施rbac权限与会话管控,全程启用verbose日志及auditd审计并对接siem。

SSH 运维安全管理的标准化工作流,不是把一堆配置命令堆在一起,而是围绕“谁在连、凭什么连、连上能做什么、连的过程有没有被记录”这四个问题,形成可执行、可审计、可收敛的闭环流程。它不依赖个人经验,而靠结构化动作支撑日常运维和应急响应。
统一入口:跳板机作为唯一访问通道
所有远程操作必须经过跳板机(Bastion Host),内网服务器禁止暴露 SSH 端口。这不是为了增加步骤,而是切断横向移动路径。
- 跳板机系统最小化安装,只保留 SSH 服务和必要工具(如 rsync、jq、curl)
- 防火墙仅开放一个伪装端口(如 443 或 8080),真实 SSH 端口(如 2222)通过 DNAT 隐藏
- 内网服务器的
/etc/ssh/sshd_config中设置AllowUsers @jumpbox或AllowGroups jumpusers,并限定ListenAddress为跳板机 IP - 每台内网服务器只信任跳板机的公钥,禁用密码登录,且拒绝来自其他地址的连接请求
身份可信:密钥 + MFA 强制认证
单靠密码或单靠密钥都不够。密钥解决“你是谁”,MFA 解决“此刻是不是你本人”。
- 所有用户使用 Ed25519 或 2048 位以上 RSA 密钥对,私钥本地加密存储(如用 ssh-keygen -t ed25519 -N "passphrase")
- 跳板机启用 PAM 模块集成 TOTP(Google Authenticator)或硬件令牌(YubiKey)
- 华为/阿里云等设备需在 VTY 接口明确配置
protocol inbound ssh,并关闭 Telnet - 账号格式统一为
%uid%,确保与 LDAP 同步,离职即失效
权限收敛:按角色隔离资产与能力
不同岗位看到的不是同一台服务器,也不是同一套命令权限。最小权限原则要落地到配置里。
- 运维账户按职能分组(如 devops、dbadmin、sec-audit),每组对应独立资产白名单
- 使用
~/.ssh/config或ProxyJump实现免手动跳转,但禁止硬编码私钥路径或明文密码 - 会话超时设为
ClientAliveInterval 300+ClientAliveCountMax 2,空闲 10 分钟自动断开 - 禁用非必要功能:
AllowTcpForwarding no、X11Forwarding no、PermitUserEnvironment no
行为留痕:从登录到命令的全程审计
每一次连接、每一条命令、每一个 sudo 操作,都要能回溯、能归责、能告警。
- 修改
/etc/ssh/sshd_config启用LogLevel VERBOSE,日志转发至 SIEM(如 ELK 或阿里云 SLS) - 跳板机部署
auditd,监控execve、setuid、sudo等敏感系统调用 - 用户登录后强制进入受限 shell(
rbash)或容器化终端(如 GMSSH 工作台),限制文件系统遍历 - 关键操作(如
sudo su -、scp大文件、修改/etc/下配置)触发实时告警
这套工作流不是一次性配置完就结束,而是嵌入到入职流程、权限申请、变更审批、安全巡检中。它让安全从“事后补救”变成“事前可控、事中可知、事后可查”。











