普通网友 2025-08-25 09:00 采纳率: 98.1%
浏览 3
已采纳

Windows OpenSSH Server常见技术问题:如何配置密钥登录?

**问题描述:** 在部署 Windows OpenSSH Server 后,用户希望通过密钥认证方式实现安全登录,但不清楚如何正确生成密钥对、配置服务器信任公钥以及设置客户端使用私钥连接。常见疑问包括:如何生成符合 OpenSSH 格式的密钥?公钥应放置在服务器哪个位置?如何设置权限以避免登录失败?此外,用户还可能遇到使用 PuTTY 或 OpenSSH 客户端时无法识别密钥的问题。本文将详细解答 Windows OpenSSH Server 下密钥登录的配置步骤与常见问题处理方法。
  • 写回答

1条回答 默认 最新

  • rememberzrr 2025-08-25 09:00
    关注

    Windows OpenSSH Server 密钥登录配置指南与常见问题解析

    一、引言:从传统密码登录到密钥认证

    随着安全意识的提升,越来越多系统管理员选择使用密钥认证方式替代传统的密码登录。Windows OpenSSH Server 自 Windows 10 1809 和 Windows Server 2019 起正式支持 OpenSSH 服务,为远程管理提供了更安全、灵活的认证方式。

    本文将从基础操作到高级配置,详细讲解如何在 Windows OpenSSH Server 上配置基于密钥的登录方式,并分析常见问题的排查思路与解决方案。

    二、生成符合 OpenSSH 格式的密钥对

    OpenSSH 支持多种密钥算法,如 RSA、ECDSA、Ed25519 等。推荐使用 Ed25519,因其安全性高且性能更优。

    步骤:

    1. 打开命令提示符或 PowerShell
    2. 执行以下命令生成密钥对(以 Ed25519 为例):
      ssh-keygen -t ed25519 -C "your_email@example.com"
    3. 输入保存路径(默认为 C:\Users\用户名\.ssh\id_ed25519
    4. 可选:设置密钥密码(Passphrase)

    生成后会得到两个文件:

    • id_ed25519:私钥文件(客户端使用)
    • id_ed25519.pub:公钥文件(需上传至服务器)

    三、配置 Windows OpenSSH Server 信任公钥

    要使服务器信任客户端的公钥,需将其添加到用户目录下的 authorized_keys 文件中。

    操作步骤:

    1. 登录目标 Windows 服务器
    2. 定位到用户目录下的 .ssh 文件夹:
      C:\Users\用户名\.ssh\authorized_keys
    3. 若目录或文件不存在,请手动创建:
      mkdir C:\Users\用户名\.ssh
      notepad C:\Users\用户名\.ssh\authorized_keys
    4. 将客户端生成的公钥内容(id_ed25519.pub)粘贴到该文件中,每行一个公钥

    权限设置建议:

    权限设置不当是导致密钥认证失败的常见原因,务必确保以下设置:

    路径权限设置
    C:\Users\用户名仅允许用户自身具有完全控制权限
    C:\Users\用户名\.ssh仅允许用户自身具有读写权限
    C:\Users\用户名\.ssh\authorized_keys仅允许用户自身读取

    四、客户端配置与连接测试

    客户端可以使用 OpenSSH 自带的 ssh 命令,也可以使用 PuTTY 工具集。不同工具对密钥格式的支持略有差异。

    使用 OpenSSH 客户端连接:

    ssh -i C:\Users\本地用户\.ssh\id_ed25519 用户名@服务器IP

    使用 PuTTY 连接:

    PuTTY 默认不支持 OpenSSH 格式的私钥,需使用 puttygen.exe 转换:

    1. 打开 PuTTYgen
    2. 点击 Load,选择 OpenSSH 私钥文件(如 id_ed25519
    3. 点击 Save private key 保存为 .ppk 格式
    4. 在 PuTTY 配置中选择该私钥文件进行连接

    五、常见问题与排查方法

    即使配置正确,也可能因某些细节导致登录失败。以下是常见问题及解决方法:

    问题现象可能原因解决方法
    Permission denied (publickey)公钥未正确添加或权限设置错误检查 authorized_keys 内容及文件权限
    Server refused our key密钥格式不支持或路径错误确认使用正确的私钥路径,PuTTY 需转换为 .ppk
    Connection closed by remote hostOpenSSH 服务未启动或配置错误检查服务状态:services.msc → OpenSSH SSH Server

    六、高级配置与优化建议

    对于生产环境,建议进一步优化 OpenSSH Server 的配置,提升安全性与可用性。

    配置文件位置:

    C:\ProgramData\ssh\sshd_config

    推荐修改项:

    • PasswordAuthentication no:禁用密码登录,仅允许密钥认证
    • PermitRootLogin no:禁止 root 登录(Windows 中为管理员)
    • MaxAuthTries 3:限制最大认证尝试次数
    • LogLevel VERBOSE:启用详细日志便于排查

    修改后重启 OpenSSH 服务:

    net stop OpenSSHSSHServer && net start OpenSSHSSHServer

    七、密钥登录流程图

    graph TD A[生成密钥对] --> B[上传公钥至服务器 authorized_keys] B --> C[配置服务器权限] C --> D[客户端配置私钥] D --> E[尝试连接] E -->|成功| F[完成密钥登录] E -->|失败| G[检查权限、密钥格式、服务状态] G --> H[修正后重试]
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 8月25日