工作日志 - SSH远程部署记录

工作日志 - SSH远程部署记录(修正补充)

日期:2024年12月19日
任务:为客户现场WinServer2012部署SSH远程管理


09:00
接到现场需求,客户有台WinServer2012需要开通SSH远程管理。RDP过去发现系统版本挺老,9600内核,估计是老机器了。

09:15
先试了标准的PowerShell命令,果然报错——Get-WindowsCapability都不认识。这种老系统用不了现代部署方式,得想别的辙。

09:30
检查服务器管理器,功能列表里翻了个底朝天,连个SSH的影子都没有。看来微软那时候还没把这功能集成进来。

10:00
决定用手动部署方案。从GitHub下载了Win32-OpenSSH的最新稳定版,直接扔到System32目录下。这种老系统就得用这种"原始"但有效的方法。

10:20
解压完成,进到OpenSSH目录。运行install-sshd.ps1脚本时系统还弹了个安全警告,使用PowerShell绕过执行策略:

# 检查当前执行策略
Get-ExecutionPolicy

# 临时绕过执行策略运行安装脚本
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
cd "C:\Windows\System32\OpenSSH"
.\install-sshd.ps1

# 安装完成后恢复执行策略(可选)
Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope Process -Force

脚本执行成功,SSH服务安装完成。

10:35
服务安装成功,但启动sshd的时候卡了一下。检查发现是防火墙挡着了,用netsh命令开了22端口:

# 使用PowerShell执行防火墙命令
netsh advfirewall firewall add rule name="SSH_Admin" dir=in action=allow protocol=TCP localport=22

10:50
服务起来了,本地测试连接:

# 使用PowerShell测试SSH连接
ssh administrator@localhost

第一次连接要确认指纹,输入密码后成功登录。基础功能通了。

11:00
重要步骤:配置SSH服务开机自启动
检查当前服务状态和启动类型:

Get-Service -Name "sshd" | Select-Object Name, Status, StartType

发现启动类型是"Manual"(手动),需要改为自动启动:

Set-Service -Name "sshd" -StartupType Automatic

验证配置:

Get-Service -Name "sshd" | Select-Object Name, Status, StartType

确认显示StartType为"Automatic",开机自启动配置完成。

11:10
从办公网测试远程连接,发现能连上但认证失败。检查发现是客户的安全策略要求使用非默认端口。重新调整:

# 修改配置文件 C:\Windows\System32\OpenSSH\sshd_config
# 使用PowerShell修改端口配置
$configFile = "C:\Windows\System32\OpenSSH\sshd_config"
(Get-Content $configFile) -replace "^#?Port.*", "Port 2222" | Set-Content $configFile

# 防火墙也相应调整
netsh advfirewall firewall add rule name="SSH_AltPort" dir=in action=allow protocol=TCP localport=2222

11:30
重启sshd服务,用新端口测试,一切正常。考虑到安全,在配置里禁用了密码认证,只允许密钥登录:

# 使用PowerShell修改认证配置
$configFile = "C:\Windows\System32\OpenSSH\sshd_config"
(Get-Content $configFile) -replace "^#?PasswordAuthentication.*", "PasswordAuthentication no" | Set-Content $configFile
(Get-Content $configFile) -replace "^#?PubkeyAuthentication.*", "PubkeyAuthentication yes" | Set-Content $configFile

11:45
再次确认自启动配置
重启服务器测试自启动功能:

# 重启SSH服务
Restart-Service -Name "sshd"
# 检查服务状态
Get-Service -Name "sshd"

服务正常启动,确认重启后SSH服务能够自动运行。

12:00
生成了一对密钥,公钥部署到服务器的authorized_keys文件里,私钥交给客户管理员。写了份简单的操作文档,包括服务重启命令和故障排查步骤。

文档补充内容:

SSH服务自启动管理(PowerShell命令):
1. 检查服务状态:Get-Service -Name "sshd"
2. 检查详细信息:Get-Service -Name "sshd" | Select-Object Name, Status, StartType
3. 设置开机自启动:Set-Service -Name "sshd" -StartupType Automatic
4. 启动服务:Start-Service -Name "sshd"
5. 停止服务:Stop-Service -Name "sshd"
6. 重启服务:Restart-Service -Name "sshd"

脚本执行策略绕过:
如果运行PS1脚本报错,使用:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force

总结:
老系统部署确实麻烦点,但手动方案反而更灵活。关键点:

  1. 老版本Windows要用手动部署,注意PowerShell执行策略
  2. 使用Set-ExecutionPolicy绕过限制运行安装脚本
  3. 防火墙规则必须配置
  4. SSH服务开机自启动必须配置,使用Set-Service命令更可靠
  5. 安全策略要调整到位
  6. 文档要写清楚,方便后续维护

活干完了,测试通过,可以交差。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值