1067:SSH 服务启动失败(System error 1067)

一、错误发生的主要原因

你遇到的 SSH 服务启动失败(System error 1067),经过分析,核心原因是 权限不符合 Windows OpenSSH 的安全要求

  1. authorized_keys 权限

    • 文件最初新建后,可能设置了 过宽权限(完全控制 F)

    • OpenSSH 要求:

      • 只能由用户本人(Administrator)和 SYSTEM 读取

      • 不能有其他用户或组(如 Administrators 或 Authenticated Users)的访问

    • 权限过宽会导致公钥认证加载失败

  2. host key 权限(主机密钥)

    • 日志显示:

      WARNING: UNPROTECTED PRIVATE KEY FILE!
      Permissions for '__PROGRAMDATA__\ssh/ssh_host_rsa_key' are too open
      
    • 原因:ssh_host_*_key 文件权限过宽(例如 Authenticated Users:(RX))

    • OpenSSH 强制要求主机私钥 仅允许 SYSTEM 和拥有者(Administrators)访问

    • 没有 host key,SSH 服务无法启动 → 1067 错误

  3. sshd_config 指向不存在或权限不对的文件

    • 虽然最后你的配置已经没问题,但初期如果 AuthorizedKeysFile 指向错误路径也可能引起启动失败

二、完整修复流程整理

1️⃣ 修复 authorized_keys 权限

# 取消继承,设置严格只读权限
icacls "C:\Users\Administrator\.ssh\authorized_keys" /inheritance:r /grant:r "Administrator:R" /grant:r "SYSTEM:R"

✅ 解释:

  • 文件仅允许 Administrator 和 SYSTEM 读取

  • 严格遵守 OpenSSH 的安全要求

2️⃣ 修复 .ssh 目录权限

# 取消继承,设置目录权限
icacls "C:\Users\Administrator\.ssh" /inheritance:r /grant:r "Administrator:F" /grant:r "SYSTEM:F"

✅ 解释:

  • 目录本身可以完全控制(F),允许 SSHD 访问文件

  • 但是文件权限必须严格受控

3️⃣ 修复 host key 权限(核心步骤)

进入 host key 所在目录:cd C:\ProgramData\ssh

检查当前权限:icacls ssh_host_*

修复主机私钥权限,只允许 Administrator 和 SYSTEM 完全控制:

icacls ssh_host_rsa_key /inheritance:r /grant:r "Administrators:F" /grant:r "SYSTEM:F"
icacls ssh_host_ecdsa_key /inheritance:r /grant:r "Administrators:F" /grant:r "SYSTEM:F"
icacls ssh_host_ed25519_key /inheritance:r /grant:r "Administrators:F" /grant:r "SYSTEM:F"
icacls ssh_host_dsa_key /inheritance:r /grant:r "Administrators:F" /grant:r "SYSTEM:F"

✅ 解释:

  • 删除其他用户组权限(如 Authenticated Users)

  • 满足 OpenSSH 启动安全策略

4️⃣ 调试启动 SSH 服务

cd "C:\Windows\System32\OpenSSH"
.\sshd.exe -d

  • -d 打印详细日志

  • 确认 host key 加载成功

  • 确认监听端口 22 成功

调试成功后,正式启动服务:net start sshd

  • 输出显示服务已运行

  • Get-Service sshd 状态为 Running

  • netstat -ano | findstr :22 显示端口 22 正在监听

5️⃣ 本地测试 SSH 连接

ssh Administrator@localhost

  • 首次连接输入 yes 接受主机指纹

  • 输入 Administrator 密码或使用公钥认证登录成功

✅ 说明服务完全恢复正常

三、总结经验教训

  1. Windows OpenSSH 对 文件权限非常严格

    • .ssh 目录:Administrator:F + SYSTEM:F ✅

    • authorized_keys:Administrator:R + SYSTEM:R ✅

    • ssh_host_*_key:Administrator:F + SYSTEM:F ✅,其他用户或组不可访问

  2. 主机密钥权限过宽是 1067 启动错误的主要原因

  3. 使用调试模式 .\sshd.exe -d 可以快速定位启动问题

  4. 该操作 不会影响其他数据库服务器的备份,因为只修改了本机 SSH 服务配置

最后、放心,你这套操作 不会影响其他数据库服务器的备份。

原因如下:

  1. 操作范围有限

  • 你修改的只是 Windows 自己的 SSH 服务和相关密钥文件,主要目录是:

    • C:\Users\Administrator\.ssh

    • C:\ProgramData\ssh

  • 这些修改只影响本机的 SSH 服务,不会去动其他服务器或备份数据。

  1. 没有修改备份脚本或备份目标

  • 你的 Oracle/SQL Server/MariaDB 等数据库备份是通过其他机制(RMAN、脚本、服务账户等)运行的

  • SSH 配置只会影响远程登录,不改变备份路径、备份账号或文件内容

  1. 风险点几乎为零

  • 如果备份脚本本身使用 SSH 连接到本机做某些操作(例如将备份推送回来),理论上只要 SSH 启动失败或权限不对,才会影响

  • 而现在 SSH 服务已经 正常启动并可连接,所以不存在负面影响


✅ 总结:

  • 你的 SSH 修复操作是安全的

  • 不会影响数据库备份、异地备份或原有服务

  • 唯一作用是保证你可以安全使用本机 SSH 和公钥认证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值