OpenSSH Server 在 Windows 11 的完整配置:从安装到公钥登录的 5 个关键步骤

OpenSSH Server 在 Windows 11 的完整配置:从安装到公钥登录的 5 个关键步骤
OpenSSH Server 在 Windows 11 的完整配置从安装到公钥登录的 5 个关键步骤Windows 11 作为微软最新的操作系统内置了对 OpenSSH 的原生支持这为开发者、系统管理员和高级用户提供了强大的远程管理能力。本文将详细介绍如何在 Windows 11 上完整配置 OpenSSH Server从基础安装到高级的公钥认证设置帮助您打造一个安全、高效的远程工作环境。1. 安装 OpenSSH Server 组件在 Windows 11 上安装 OpenSSH Server 有两种主要方法通过图形界面和通过 PowerShell。我们推荐使用 PowerShell因为它更高效且适合批量部署。1.1 通过 PowerShell 安装首先以管理员身份打开 PowerShell右键点击开始菜单选择Windows Terminal(管理员)或PowerShell(管理员)然后执行以下命令检查 OpenSSH 组件是否已安装Get-WindowsCapability -Online | Where-Object Name -like OpenSSH*如果输出显示状态为NotPresent则需要安装。执行以下命令安装服务器组件# 安装OpenSSH服务器 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 # 安装完成后检查状态 Get-WindowsCapability -Online | Where-Object Name -like OpenSSH.Server*1.2 通过图形界面安装如果您更喜欢使用图形界面可以按照以下步骤操作打开设置 应用 可选功能点击查看功能按钮搜索OpenSSH勾选OpenSSH 服务器点击下一步并完成安装提示无论采用哪种安装方式建议同时安装OpenSSH客户端组件以便测试连接。2. 配置防火墙规则安装完成后需要确保防火墙允许 SSH 连接默认端口22。OpenSSH 安装程序通常会自动创建防火墙规则但最好手动验证。2.1 检查现有防火墙规则在管理员 PowerShell 中运行Get-NetFirewallRule -Name *ssh*如果看到名为OpenSSH-Server-In-TCP的规则说明已存在。如果没有需要手动创建2.2 创建防火墙规则if (!(Get-NetFirewallRule -Name OpenSSH-Server-In-TCP -ErrorAction SilentlyContinue)) { New-NetFirewallRule -Name OpenSSH-Server-In-TCP -DisplayName OpenSSH Server (sshd) -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 }2.3 修改默认端口可选出于安全考虑您可以更改默认的SSH端口。编辑配置文件C:\ProgramData\ssh\sshd_config找到并修改以下行Port 2222 # 改为您选择的端口号然后更新防火墙规则Set-NetFirewallRule -Name OpenSSH-Server-In-TCP -LocalPort 22223. 服务自启动设置为确保SSH服务在系统启动时自动运行需要进行以下配置3.1 设置服务启动类型# 设置服务为自动启动 Set-Service -Name sshd -StartupType Automatic # 立即启动服务 Start-Service sshd # 验证服务状态 Get-Service sshd3.2 服务管理命令参考操作命令启动服务Start-Service sshd停止服务Stop-Service sshd重启服务Restart-Service sshd检查状态Get-Service sshd4. 配置公钥认证密码认证存在被暴力破解的风险推荐使用更安全的公钥认证方式。4.1 生成密钥对在客户端机器上生成SSH密钥对如果尚未拥有ssh-keygen -t ed25519 -C your_emailexample.com这将创建两个文件id_ed25519私钥必须保密id_ed25519.pub公钥将上传到服务器4.2 配置服务器公钥认证在服务器上创建.ssh目录如果不存在mkdir C:\Users\YourUsername\.ssh将客户端的公钥内容添加到authorized_keys文件Add-Content -Path C:\Users\YourUsername\.ssh\authorized_keys -Value 粘贴您的公钥内容修改SSH配置文件C:\ProgramData\ssh\sshd_config确保以下设置PubkeyAuthentication yes PasswordAuthentication no # 禁用密码认证以提高安全性重启SSH服务使更改生效Restart-Service sshd4.3 权限设置Windows上的OpenSSH对文件权限有严格要求执行以下命令设置正确权限icacls C:\Users\YourUsername\.ssh /remove NT AUTHORITY\Authenticated Users icacls C:\Users\YourUsername\.ssh /inheritance:r icacls C:\Users\YourUsername\.ssh /grant YourUsername:(F)5. 连接测试与故障排查完成上述配置后需要进行连接测试并了解常见问题的解决方法。5.1 基本连接测试从客户端机器尝试连接ssh usernameserver_ip -p 22 # 如果修改了端口号替换22为您的端口5.2 常见问题排查表问题现象可能原因解决方案连接超时防火墙阻止检查防火墙规则确保端口开放权限被拒绝公钥未正确配置验证authorized_keys文件内容和权限服务器未响应SSH服务未运行检查sshd服务状态并确保其运行认证失败配置文件错误检查sshd_config中的认证设置5.3 日志检查当遇到问题时查看SSH日志有助于诊断Get-EventLog -LogName Application -Source OpenSSH | Select-Object -First 20或者直接查看详细日志cat C:\ProgramData\ssh\logs\sshd.log5.4 高级调试如需更详细的调试信息可以临时启用详细日志并重启服务# 在sshd_config中添加 LogLevel DEBUG3 # 然后重启服务 Restart-Service sshd通过这些步骤您应该已经在Windows 11上成功配置了一个安全、高效的OpenSSH服务器。公钥认证大大提高了安全性而正确的服务管理和防火墙设置确保了可靠的远程访问。