禁用密码登录、强制使用密钥对可提升ssh安全性,适用于linux和windows server的openssh,但rdp不支持密钥认证,需通过ip限制、多因素认证等方式加固。

禁用密码登录、强制使用密钥对,是提升服务器远程访问安全性的关键一步。这适用于 Linux(SSH)和 Windows Server(启用 OpenSSH 后的 SSH),但RDP 本身不支持密钥认证,它依赖 Windows 账户体系,只能通过其他方式加强防护(如网络层限制、多因素认证等),不能“禁用密码改用密钥”。下面分场景说明操作要点。
Linux 服务器:SSH 强制密钥登录
核心是修改服务端配置并确保密钥已正确部署:
- 确认公钥已写入目标用户家目录的
~/.ssh/authorized_keys(可用ssh-copy-id或手动追加) - 编辑
/etc/ssh/sshd_config,确保以下几行明确设置:
PubkeyAuthentication yes<br>PasswordAuthentication no<br>PermitRootLogin no<br># 可选:限制仅特定用户能登录<br>AllowUsers deploy admin
- 保存后重启服务:
sudo systemctl restart sshd - ⚠️ 操作前务必确认当前会话仍可连通,或保留一个未关闭的 root shell,避免锁死
Windows Server(OpenSSH):同样禁用密码启用密钥
Windows 自带的 OpenSSH 服务支持密钥登录,但需手动配置:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 以管理员身份运行 PowerShell,检查服务状态:
Get-Service sshd,确保为 Running - 编辑配置文件:
C:\ProgramData\ssh\sshd_config(注意路径不是用户目录) - 将以下参数设为:
PubkeyAuthentication yes<br>PasswordAuthentication no<br>PermitRootLogin no<br>AuthorizedKeysFile .ssh/authorized_keys
- 为对应 Windows 用户(如 Administrator)在
C:\Users\Administrator\.ssh\下创建authorized_keys文件,并粘贴公钥内容(一行一条,无换行) - 重启服务:
Restart-Service sshd - 测试连接:
ssh Administrator@公网IP,应无需密码
RDP 不支持密钥登录,替代加固方案
RDP 协议设计上不接受 SSH 密钥,它始终基于 Windows 用户名/密码(或智能卡、Windows Hello)。若想削弱密码依赖,可组合以下措施:
- 在云平台安全组或 Windows 防火墙中,仅允许指定 IP 段访问 3389 端口
- 启用 Windows 登录的多因素认证(如 Microsoft Authenticator 或第三方 NPS 插件)
- 禁用 Administrator 账户,新建强密码普通账户 + 加入 Remote Desktop Users 组
- 改用非标端口(修改注册表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber),再配合端口转发或跳板机
验证与常见问题
完成配置后建议快速验证:
- 新终端窗口执行
ssh -o PubkeyAuthentication=yes -o PasswordAuthentication=no user@ip,确认能进且不提示输密码 - 尝试
ssh -o PubkeyAuthentication=no user@ip,应直接拒绝 - 检查日志:
sudo tail -f /var/log/auth.log(Linux)或 Windows 事件查看器 → Windows 日志 → Security,筛选 Event ID 4625/4624 - 若失败,优先排查:
authorized_keys权限(Linux 必须 600,目录 700)、SELinux(如开启需restorecon -Rv ~/.ssh)、Windows 中.ssh目录归属是否为该用户










