Windows 10 与 Kali Linux SSH 免密互信配置指南

为了实现 Kali (OpenClaw/Agent) 自动将审计报告"空投"到 Windows (Obsidian),我们需要打通 SSH 免密互信。由于 Windows 的安全策略与 Linux 不同,请严格按照以下经过实操验证的步骤执行:


🛠️ Windows 10 与 Kali Linux SSH 免密互信配置指南

第一阶段:Windows 宿主机环境准备

目标: 安装并开启 OpenSSH Server,并修复权限逻辑。

  1. 安装 OpenSSH Server

    以 管理员身份 打开 PowerShell,执行:

    powershell 复制代码
    # 安装服务器组件
    Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
    
    # 启动服务并设置自启
    Start-Service sshd
    Set-Service -Name sshd -StartupType 'Automatic'
    
    # 开放防火墙 22 端口
    New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
  2. 修改关键配置文件 (至关重要)

    Windows 默认会拦截管理员账户的 authorized_keys,必须手动关闭此限制:

    • 输入 notepad C:\ProgramData\ssh\sshd_config。

    • 拉到文件最底部 ,在以下两行前加上 # 注释掉:

      text 复制代码
      # Match Group administrators
      #        AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
    • 保存并重启服务:Restart-Service sshd。


第二阶段:Kali 客户端密钥生成与投送

目标: 生成身份勋章并送往 Windows。

  1. 生成 SSH 密钥对 (如果已有则跳过)

    在 Kali 终端执行:

    bash 复制代码
    ssh-keygen -t rsa -b 4096 -N "" -f ~/.ssh/id_rsa
  2. 手动创建 Windows 端的密钥接收文件

    回到 Windows 管理员 PowerShell,执行:

    powershell 复制代码
    mkdir -Force $HOME\.ssh
    New-Item -ItemType File -Name "$HOME\.ssh\authorized_keys" -Force
    
    # 严格限制权限(Windows SSH 要求此文件只能由 System 和当前用户访问)
    icacls "$HOME\.ssh\authorized_keys" /inheritance:r
    icacls "$HOME\.ssh\authorized_keys" /grant "SYSTEM:(F)"
    icacls "$HOME\.ssh\authorized_keys" /grant "${env:USERNAME}:(F)"
  3. 从 Kali 将公钥"空投"过去

    在 Kali 终端执行(将 192.168.1.7 替换为你的宿主机 IP):

    bash 复制代码
    # 使用 SCP 覆盖 Windows 上的密钥文件
    scp ~/.ssh/id_rsa.pub wangzhenye@192.168.1.7:C:/Users/wangzhenye/.ssh/authorized_keys

    此时需最后输入一次 Windows 密码。


第三阶段:互信验证与自动化测试

目标: 确认不再需要密码,并接入 OpenClaw 流程。

  1. 免密测试

    在 Kali 终端执行:

    bash 复制代码
    ssh wangzhenye@192.168.1.7

    若直接进入 C:\Users\wangzhenye> 提示符而未弹密码,则互信成功。

  2. OpenClaw 自动化指令模板

    在 OpenClaw Web 界面输入,验证全链路:

    "SSH 免密已就绪。请执行:

    1. 执行 ls -la /home/kali/ 并保存到 .openclaw/reports/sync_test.md。
    2. 使用 scp 将该报告发送至 C:/Users/wangzhenye/Documents/Obsidian/。
    3. 完成后报告状态。"

⚠️ 常见坑点排查

  • 连接超时/拒绝: 检查 Windows 防火墙是否允许 TCP 22 端口,或尝试使用 VMnet8 的 NAT 网关 IP(如 192.168.x.1)。
  • 依然要密码: 检查 sshd_config 底部的两行是否真的被 # 注释掉了,以及 Restart-Service sshd 是否执行。
  • 乱码问题: Windows SSH 登录后的乱码是由于编码格式不同,不影响 scp 文件的完整性。

Vibe Tip: 建议在 Obsidian 中创建一个专门的 Pentest_Reports 文件夹,并将 scp 的目标路径指向那里,配合 Google Drive,你就能在手机上实时收到 Kali 跑出的漏洞简报了。

相关推荐
Ruiery3 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
欧米欧3 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery3 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
qetfw4 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
BIBI20495 小时前
换 Git 托管平台怎么做?基于 TortoiseGit 的跨平台迁移教程
windows·git·tortoisegit·问题解决·版本控制·最佳实践
chushiyunen6 小时前
autoHotKey、windows自动化快捷键工具
运维·windows·自动化
逆风的蚂蚁6 小时前
linux服务器性能调整怎么落地?我把 CPU 调度、I/O 优先级和内核参数这几个旋钮都拧了一遍
linux·运维·服务器
燃烧的枫7 小时前
Windows 下 YOLO11 Det 的 TensorRT C++ 部署
pytorch·windows·tensorrt·关键点识别·yolo11
猪八宅百炼成仙8 小时前
让 AI 帮你清理电脑而不翻车:一个 Windows 体检调优 Skill 的工程化设计
人工智能·windows
鱼宵9 小时前
取集合第一个元素,Java 为什么要写三种写法?
java·windows·python·java21