当前位置: 首页 > news >正文

(保姆级指南)Windows服务器开启OpenSSH服务并用Xshell安全连接的完整流程

1. Windows服务器开启OpenSSH服务

第一次在Windows Server上配置OpenSSH可能会觉得有点懵,但其实跟着步骤走一点都不难。我最近给公司几台服务器都配了这个服务,实测Windows Server 2016/2019/2022都适用。

1.1 安装OpenSSH服务器组件

现在新版的Windows Server已经内置了OpenSSH,不用像以前那样手动下载安装包了。打开你的服务器,跟着我做:

  1. 用管理员身份打开PowerShell(一定要管理员权限!)
  2. 输入以下命令检查是否已安装:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

如果看到State显示"NotPresent",说明需要安装。继续输入:

# 安装服务端组件 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

安装过程大概1-2分钟,完成后你会看到返回结果中"Path"和"Online"都是True。

提示:如果遇到"拒绝访问"错误,检查下是不是忘了用管理员身份运行PowerShell。我在第一次操作时就犯了这个低级错误。

1.2 启动SSH服务

安装完组件后,需要启动服务并设置开机自启:

# 启动服务 Start-Service sshd # 设置开机自动启动 Set-Service -Name sshd -StartupType 'Automatic'

这时候可以检查下服务状态:

Get-Service sshd

如果看到"Running"就说明启动成功了。我遇到过服务启动失败的情况,一般都是端口被占用,可以用netstat -ano | findstr :22查下22端口是否被其他程序占用。

1.3 配置防火墙规则

安全起见,Windows防火墙默认会阻止外部访问。我们需要放行22端口:

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. 服务器端关键配置

2.1 修改SSH默认配置

配置文件位于C:\ProgramData\ssh\sshd_config,用记事本管理员身份打开编辑:

# 允许密码登录 PasswordAuthentication yes # 禁用不安全的协议 Protocol 2 # 限制root登录(如果有需要) #PermitRootLogin no # 修改默认端口(可选,增强安全性) #Port 2222

改完后记得重启服务:

Restart-Service sshd

重要安全提示:如果服务器在公网,强烈建议:

  1. 修改默认22端口
  2. 禁用root登录
  3. 启用密钥登录(后面会讲)

2.2 用户权限管理

默认情况下,所有管理员账户都能通过SSH登录。如果想限制特定用户:

  1. 打开"计算机管理" → "本地用户和组"
  2. 创建一个新用户组,比如"SSH Users"
  3. 将允许SSH登录的用户加入这个组
  4. 回到sshd_config文件,添加:
AllowGroups SSH Users

3. Xshell客户端配置

3.1 下载安装Xshell

去官网下载免费版就行,家庭和学校使用完全够用。安装过程一路下一步就行,没什么坑。

3.2 创建新会话

打开Xshell,点击"新建会话",关键配置项:

  1. 名称:给你的连接起个好记的名字
  2. 协议:选SSH
  3. 主机:服务器IP地址
  4. 端口:22(如果改了端口就填修改后的)
  5. 用户身份验证
    • 方法:选"Password"
    • 用户名:服务器登录账号
    • 密码:对应密码

第一次连接时会弹出SSH安全警告,这是正常的,点"接受并保存"就行。

3.3 高级安全设置

建议做这些优化配置:

  1. 会话属性终端VT模式:选Linux(兼容性更好)
  2. 外观:调整字体大小(我习惯用Consolas 14pt)
  3. 日志记录:建议开启,方便回溯操作历史

4. 连接测试与排错

4.1 基础连接测试

点击连接后,如果一切正常,你会看到命令行提示符。可以试试基本命令:

whoami systeminfo | findstr /B /C:"OS Name" /C:"OS Version"

4.2 常见错误解决

问题1:连接超时

  • 检查服务器IP是否正确
  • 确认防火墙已放行端口
  • 测试本地是否能ping通服务器

问题2:认证失败

  • 检查用户名/密码是否正确
  • 查看服务器安全日志:Get-EventLog -LogName Security -InstanceId 4625 -Newest 5

问题3:SSH服务未响应

  • 检查服务状态:Get-Service sshd
  • 查看日志:Get-WinEvent -LogName "OpenSSH/Operational" | Select-Object -First 20

5. 进阶安全配置

5.1 密钥认证设置

比密码更安全的登录方式:

  1. 生成密钥对
ssh-keygen -t rsa -b 4096
  1. 将公钥上传到服务器
# 在服务器上创建.ssh目录 mkdir C:\Users\你的用户名\.ssh # 将客户端公钥内容添加到authorized_keys文件 Add-Content -Path C:\Users\你的用户名\.ssh\authorized_keys -Value "你的公钥内容"
  1. 修改sshd_config
PubkeyAuthentication yes PasswordAuthentication no

5.2 启用双重认证

可以通过Google Authenticator实现:

  1. 安装插件:Install-Module -Name GoogleAuthenticator
  2. 配置sshd_config:
AuthenticationMethods publickey,keyboard-interactive

6. 日常维护技巧

6.1 服务监控

创建监控脚本check_ssh.ps1:

$service = Get-Service sshd if ($service.Status -ne 'Running') { Start-Service sshd Send-MailMessage -From "alert@yourdomain.com" -To "admin@yourdomain.com" ` -Subject "SSH Service Alert" -Body "SSH service was down and has been restarted" }

然后设置计划任务定期执行。

6.2 日志分析

定期检查SSH登录记录:

# 查看成功登录 Get-EventLog -LogName Security -InstanceId 4624 -After (Get-Date).AddDays(-1) | Where-Object {$_.Message -like "*logon type: 10*"} # 查看失败尝试 Get-EventLog -LogName Security -InstanceId 4625 -After (Get-Date).AddDays(-1)

7. 性能优化建议

7.1 调整SSH参数

在sshd_config中添加:

# 提高并发连接数 MaxStartups 30:30:60 # 保持连接活跃 ClientAliveInterval 300 ClientAliveCountMax 2 # 禁用DNS反向解析 UseDNS no

7.2 资源限制

可以通过组策略限制:

  1. 打开gpedit.msc
  2. 找到:计算机配置 → 管理模板 → 网络 → 网络连接 → Windows防火墙
  3. 配置并发连接数限制

8. 替代方案对比

虽然Xshell很好用,但还有其他选择:

客户端优点缺点
Xshell功能全面,会话管理强大商业版收费
PuTTY轻量免费功能较少
Windows终端系统内置功能基础
MobaXterm标签页管理免费版有连接数限制

我个人习惯用Xshell管理生产环境,临时连接用Windows终端就够了。

http://www.jsqmd.com/news/1200975/

相关文章:

  • 如何利用MultipleWindow3dScene实现多窗口3D场景实时同步
  • 零门槛AI绘画革命:5步掌握Fooocus开源AI图像生成工具
  • QCMA终极指南:如何免费实现PS Vita跨平台无线备份与内容管理
  • 3个核心技术突破:掌握海洋航行器水动力学建模与控制的完整指南
  • 群晖NAS升级2.5G网卡终极指南:简单三步解锁高速网络
  • 免费便携式图片编辑器:PhotoDemon 完整使用指南
  • Cursor项目管理避坑清单:17个导致交付延期的隐藏配置错误,第9个95%开发者至今未察觉
  • 生物反应器十大品牌排行榜TOP4|玻璃、不锈钢生物反应器厂家选购与国产替代方案 - 品牌推荐大师
  • 图形学笔记(三)变换——从线性到仿射:齐次坐标的统一魔法
  • 如何高效管理B站多媒体资源:BiliTools跨平台工具箱完整指南
  • AndroidRecyclerViewDemo与LoaderManager结合:实现数据动态加载的终极指南
  • 从静态到动态:如何在Stable Diffusion WebUI中一键生成AI动画视频
  • CANN/asc-devkit TQueSync模板参数
  • 保险丝工作原理、选型要点与电路保护实践指南
  • Rambus 推出 DDR5 9600 服务器 RDIMM 芯片组,赋能下一代 AI 与数据中心平台
  • Explorer++:Windows文件管理的C++技术革新与轻量级架构解析
  • 用 WorkBuddy 重新定义“工作“的边界AI 工作台如何改变软件开发者的日常
  • 三大核心技术深度解析:Prometheus自主无人机平台的架构揭秘与实战指南
  • LRC歌词批量同步解决方案:为离线音乐库注入智能歌词体验
  • UndertaleModTool:GameMaker游戏反编译与模组制作深度解析与实战指南
  • 毕业论文格式排版总被导师打回?2026年智能排版5分钟搞定秘籍
  • 如何轻松搞定B站视频下载:这款开源神器让你事半功倍
  • Boss-Key:Windows隐私保护终极解决方案,一键隐藏窗口的高效工具
  • 运算放大器基础与应用:从虚短虚断到电路设计
  • 可白嫖源码---课程设计----课程设计--毕业设计--springboot贺州地方新闻网站[编号:project87812](案例分析)
  • 5分钟掌握uBlock Origin:你的浏览器隐私保护终极指南
  • 需求工程精要:从定义、分层到分类的实战解析
  • 音乐解锁终极指南:如何打破平台枷锁,真正拥有你的数字音乐
  • Platinum-MD:终极免费NetMD音乐传输解决方案完全指南
  • 中老年羊奶粉哪个牌子好?有机认证+奶源可追溯,5大品牌对比 - 资讯在线