SSH默认即高危:监听地址暴露公网、PasswordAuthentication与PermitRootLogin双开启、密钥散落无人管、防火墙策略不闭环;RDP常见误区包括未启用NLA认证、防火墙规则宽泛、服务状态≠连接能力;混合环境下VSCode端口转发绑定0.0.0.0、跳板机成密钥黑洞、云服务器安全组默认放行0.0.0.0/0构成共性风险。

服务器 SSH 与 RDP 接入控制看似只是“开个服务、配个端口”,实则处处是隐性风险点。真正出问题的,往往不是服务没启动,而是配置看似正常、实则留了后门;不是没人连,而是连进来的人身份不可控、行为不可溯。
SSH 常见陷阱:默认即危险,静默即失控
Linux 服务器上,SSH 不是“启用就安全”,而是“默认即高危”。很多团队在部署后只确认 systemctl start sshd 成功,却忽略关键细节:
-
监听地址暴露公网:
ss -tln | grep :22显示0.0.0.0:22,等于把钥匙挂在门口;应限定为127.0.0.1或指定管理网段(如192.168.10.0/24) -
认证方式未收敛:
/etc/ssh/sshd_config中PasswordAuthentication yes和PermitRootLogin yes同时存在,等于给暴力破解和提权留双通道 -
密钥散落无人管:跳板机上存着几百个
id_rsa,CI/CD 流水线用的私钥写死在脚本里,离职员工的密钥半年未清理——行业调研显示约六成企业无法说清当前活跃 SSH 私钥总数 -
防火墙策略不闭环:nftables/iptables 放行了 22 端口,但没限制源 IP;或规则顺序错误,导致
drop在accept之前被跳过
RDP 高危误区:开了≠能连,能连≠安全
Windows 远程桌面常被误认为“图形界面开关一开就完事”,但真实风险藏在协议层与策略层:
-
仅开远程桌面功能,未启网络级认证(NLA):注册表项
HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\UserAuthentication值为 0,意味着登录前不校验凭据,攻击者可直接发起爆破或 CredSSP 漏洞利用(CVE-2018-0886) -
防火墙规则宽泛:PowerShell 查
Get-NetFirewallRule -DisplayGroup "Remote Desktop"显示规则已启用,但 Profile 匹配的是“域”而非当前“专用”网络,或规则允许任意 IP 访问 -
服务状态≠连接能力:
fDenyTSConnections=0表示允许连接,但若底层TermService服务未运行,或组策略中禁用了 RDP,实际仍无法接入 - CredSSP 协商失败被当成网络问题:客户端已打补丁要求强加密,服务器未更新或策略未同步,报错“加密数据库修正”,但运维第一反应常是查网络连通性,错过协议层诊断窗口
混合环境共性隐患:跨平台盲区最致命
当 Linux(SSH)与 Windows(RDP)混用,或通过 VSCode、JumpServer 等统一入口接入时,新风险会叠加产生:
-
VSCode Remote-SSH 的本地端口转发默认绑定 0.0.0.0:比如
LocalForward 0.0.0.0:3000 remote:3000,导致本机映射的服务被局域网其他设备访问,形成隐蔽的横向移动跳板 - 跳板机成了密钥黑洞:堡垒机本身 SSH 安全,但其上保存的后端服务器私钥未轮换、无审计、无回收机制;一次跳板机失陷,等于全部资产钥匙一次性泄露
- 云服务器默认端口裸奔:云厂商镜像默认开放 22/3389,且安全组初始放行“0.0.0.0/0”,上线即暴露;而等保或红蓝对抗时,这类基础项往往是第一个被击穿点
- 弱口令+多层代理=放大攻击面:RDP 登录用弱密码,再通过该 Windows 主机 SSH 连到 Linux 服务器(因免密配置),攻击者只需突破一层,即可横跳全链路
可落地的避坑动作清单
不需要一步到位建 PAM 系统,从最小闭环开始就能显著降险:
-
SSH 立即执行:禁用密码登录、关闭 root 直连、
AllowUsers明确白名单、用nft flush ruleset + 原子加载替代逐条增删防火墙规则 -
RDP 必检三项:PowerShell 确认
fDenyTSConnections=0、UserAuthentication=1、对应防火墙规则Enabled且Profile匹配当前网络 -
统一巡检自动化:用 Orion Visor 或自研脚本,定期拉取每台服务器的 SSH/RDP 实际监听状态、认证策略、防火墙放行情况,输出 JSON 报告并标出
fail项(如“PasswordAuthentication yes”、“NLA disabled”) -
VSCode 连接强制约束:在
~/.ssh/config中为每台主机显式指定LocalForward 127.0.0.1:端口 remote:端口,禁用全局 0.0.0.0 绑定










