为了实现 Kali (OpenClaw/Agent) 自动将审计报告"空投"到 Windows (Obsidian),我们需要打通 SSH 免密互信。由于 Windows 的安全策略与 Linux 不同,请严格按照以下经过实操验证的步骤执行:
🛠️ Windows 10 与 Kali Linux SSH 免密互信配置指南
第一阶段:Windows 宿主机环境准备
目标: 安装并开启 OpenSSH Server,并修复权限逻辑。
-
安装 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 -
修改关键配置文件 (至关重要)
Windows 默认会拦截管理员账户的
authorized_keys,必须手动关闭此限制:-
输入
notepad C:\ProgramData\ssh\sshd_config。 -
拉到文件最底部 ,在以下两行前加上
#注释掉:text# Match Group administrators # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys -
保存并重启服务:
Restart-Service sshd。
-
第二阶段:Kali 客户端密钥生成与投送
目标: 生成身份勋章并送往 Windows。
-
生成 SSH 密钥对 (如果已有则跳过)
在 Kali 终端执行:
bashssh-keygen -t rsa -b 4096 -N "" -f ~/.ssh/id_rsa -
手动创建 Windows 端的密钥接收文件
回到 Windows 管理员 PowerShell,执行:
powershellmkdir -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)" -
从 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 流程。
-
免密测试
在 Kali 终端执行:
bashssh wangzhenye@192.168.1.7若直接进入
C:\Users\wangzhenye>提示符而未弹密码,则互信成功。 -
OpenClaw 自动化指令模板
在 OpenClaw Web 界面输入,验证全链路:
"SSH 免密已就绪。请执行:
- 执行
ls -la /home/kali/并保存到.openclaw/reports/sync_test.md。 - 使用
scp将该报告发送至C:/Users/wangzhenye/Documents/Obsidian/。 - 完成后报告状态。"
- 执行
⚠️ 常见坑点排查
- 连接超时/拒绝: 检查 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 跑出的漏洞简报了。