first build nexus
This commit is contained in:
389
openclaw/knowledgebase/OpenClaw-技能清单.md
Normal file
389
openclaw/knowledgebase/OpenClaw-技能清单.md
Normal file
@@ -0,0 +1,389 @@
|
||||
# OpenClaw 技能笔记
|
||||
|
||||
> 创建时间: 2026-03-19
|
||||
> 整理者: 星辉
|
||||
|
||||
---
|
||||
|
||||
## 📋 技能清单总览
|
||||
|
||||
本文档记录 OpenClaw 中所有可用的技能(Skills)。
|
||||
|
||||
---
|
||||
|
||||
## 🔐 账号与密码
|
||||
|
||||
### 1. 1password
|
||||
- **描述:** 1Password CLI (op) 工具
|
||||
- **用途:** 安装CLI、桌面应用集成、单/多账户登录、读写/运行密码
|
||||
- **路径:** `~/.agents/skills/1password-1.0.1/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## 🍎 Apple 生态
|
||||
|
||||
### 2. apple-notes
|
||||
- **描述:** Apple Notes 管理 via `memo` CLI
|
||||
- **用途:** 创建、查看、编辑、删除、搜索、移动、导出笔记
|
||||
- **路径:** `~/.openclaw/skills/apple-notes/SKILL.md`
|
||||
|
||||
### 3. apple-reminders
|
||||
- **描述:** Apple Reminders via `remindctl` CLI
|
||||
- **用途:** 列出、添加、编辑、完成、删除提醒,支持列表、日期过滤、JSON/纯文本输出
|
||||
- **路径:** `~/.openclaw/skills/apple-reminders/SKILL.md`
|
||||
|
||||
### 4. accli
|
||||
- **描述:** Apple Calendar CLI
|
||||
- **用途:** 列出日历、查看事件、创建/更新/删除日历事件、检查空闲时间
|
||||
- **触发词:** "查看日历"、"安排会议"、"我今天有什么安排"、"明天我有空吗"
|
||||
- **路径:** `~/.openclaw/skills/accli/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## ☁️ 云服务与协作
|
||||
|
||||
### 5. gog
|
||||
- **描述:** Google Workspace CLI
|
||||
- **用途:** Gmail、日历、云盘、联系人、表格、文档
|
||||
- **路径:** `~/.agents/skills/gog/SKILL.md`
|
||||
|
||||
### 6. feishu-chat-history
|
||||
- **描述:** 获取飞书群聊历史
|
||||
- **用途:** 读取、回顾、总结飞书群聊消息
|
||||
- **触发词:** "看群聊记录"、"群里聊了啥"、"chat history"
|
||||
- **路径:** `~/.agents/skills/feishu-chat-history/SKILL.md`
|
||||
|
||||
### 7. feishu-cron-reminder
|
||||
- **描述:** 飞书定时提醒
|
||||
- **用途:** 创建定时发送消息到飞书聊天的cron任务
|
||||
- **触发词:** "飞书定时提醒"、"定时任务发飞书"、"每小时提醒"
|
||||
- **路径:** `~/.agents/skills/feishu-cron-reminder/SKILL.md`
|
||||
|
||||
### 8. feishu-doc
|
||||
- **描述:** 飞书文档获取
|
||||
- **用途:** 获取飞书Wiki、文档、表格、Bitable内容,自动转换为Markdown
|
||||
- **路径:** `~/.agents/skills/feishu-doc-1.2.7/SKILL.md`
|
||||
|
||||
### 9. feishu-perm
|
||||
- **描述:** 飞书权限管理
|
||||
- **用途:** 文档和文件的分享、权限、协作者管理
|
||||
- **触发词:** 分享、权限、协作者
|
||||
- **路径:** `~/.agents/skills/feishu-perm/SKILL.md`
|
||||
|
||||
### 10. feishu-screenshot
|
||||
- **描述:** 截屏并发送到飞书
|
||||
- **用途:** 截取屏幕并通过飞书分享
|
||||
- **触发词:** "截个屏发飞书"、"截屏"、"screenshot"
|
||||
- **路径:** `~/.agents/skills/feishu-screenshot/SKILL.md`
|
||||
|
||||
### 11. feishu-send-file
|
||||
- **描述:** 发送文件到飞书
|
||||
- **用途:** 通过REST API发送文件、附件到飞书群或个人
|
||||
- **触发词:** "发文件到飞书"、"send file to feishu"
|
||||
- **路径:** `~/.agents/skills/feishu-send-file/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## 💬 通讯工具
|
||||
|
||||
### 12. slack
|
||||
- **描述:** Slack 控制
|
||||
- **用途:** 通过 slack 工具控制Slack,包括消息反应、pin/unpin
|
||||
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/slack/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## 🌐 网络与浏览器
|
||||
|
||||
### 13. agent-browser
|
||||
- **描述:** 无头浏览器自动化CLI
|
||||
- **用途:** 为AI代理优化的浏览器自动化,支持无障碍树快照和基于引用的元素选择
|
||||
- **路径:** `~/.openclaw/skills/agent-browser-clawdbot/SKILL.md`
|
||||
|
||||
### 14. tavily-search
|
||||
- **描述:** Tavily 搜索API
|
||||
- **用途:** 网页搜索(替代Brave),返回相关结果标题、URL、摘要
|
||||
- **路径:** `~/.openclaw/skills/openclaw-tavily-search/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ 开发工具
|
||||
|
||||
### 15. Docker
|
||||
- **描述:** Docker 容器、镜像、Compose、网络、卷、调试
|
||||
- **用途:** Docker相关操作、生产环境加固、命令保持稳定
|
||||
- **路径:** `~/.openclaw/skills/docker/SKILL.md`
|
||||
|
||||
### 16. Code
|
||||
- **描述:** 编码工作流
|
||||
- **用途:** 规划、实现、验证、测试的清洁软件开发流程
|
||||
- **路径:** `~/.agents/skills/code-1.0.4/SKILL.md`
|
||||
|
||||
### 17. git-essentials
|
||||
- **描述:** 基础Git命令
|
||||
- **用途:** 版本控制、分支、协作
|
||||
- **路径:** `~/.agents/skills/git-essentials-1.0.0/SKILL.md`
|
||||
|
||||
### 18. frontend-design
|
||||
- **描述:** 前端界面设计
|
||||
- **用途:** 创建独特、生产级的前端界面,高设计质量
|
||||
- **路径:** `~/.agents/skills/frontend-design-3-0.1.0/SKILL.md`
|
||||
|
||||
### 19. security-auditor
|
||||
- **描述:** 安全审计
|
||||
- **用途:** 代码安全漏洞审查、身份验证流程、OWASP Top 10审计、CORS/CSP配置、敏感数据处理、输入验证、SQL注入预防、XSS保护
|
||||
- **路径:** `~/.agents/skills/security-auditor-1.0.0/SKILL.md`
|
||||
|
||||
### 20. architecture-designer
|
||||
- **描述:** 系统架构设计
|
||||
- **用途:** 设计新系统架构、审查现有设计、架构决策、ADRs、可扩展性规划
|
||||
- **路径:** `~/.agents/skills/architecture-designer-0.1.0/SKILL.md`
|
||||
|
||||
### 21. supabase-postgres-best-practices
|
||||
- **描述:** Supabase Postgres 最佳实践
|
||||
- **用途:** Postgres性能优化和最佳实践
|
||||
- **路径:** `~/.agents/skills/supabase-postgres-best-practices/SKILL.md`
|
||||
|
||||
### 22. tmux
|
||||
- **描述:** Tmux 远程控制
|
||||
- **用途:** 远程控制tmux会话,发送按键和抓取面板输出
|
||||
- **路径:** `~/.agents/skills/tmux-1.0.0/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## 📝 笔记与知识管理
|
||||
|
||||
### 23. obsidian
|
||||
- **描述:** Obsidian 保险库
|
||||
- **用途:** 处理Obsidian纯文本Markdown笔记,通过obsidian-cli自动化
|
||||
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/obsidian/SKILL.md`
|
||||
|
||||
### 24. ontology
|
||||
- **描述:** 知识图谱
|
||||
- **用途:** 结构化代理记忆和可组合技能,创建/查询实体(Person、Project、Task、Event、Document),链接相关对象,执行约束,多步骤动作规划
|
||||
- **触发词:** "记住"、"关于X我知道什么"、"链接X到Y"、"显示依赖"
|
||||
- **路径:** `~/.agents/skills/ontology/SKILL.md`
|
||||
|
||||
### 25. Memory
|
||||
- **描述:** 无限有序记忆
|
||||
- **用途:** 补充代理内置记忆的无限分类存储
|
||||
- **路径:** `~/.agents/skills/memory-1.0.2/SKILL.md`
|
||||
|
||||
### 26. obsidian-ontology-sync
|
||||
- **描述:** Obsidian与 Ontology 双向同步
|
||||
- **用途:** 从markdown自动提取实体和关系,维护本体图谱,提供反馈改进笔记结构
|
||||
- **路径:** `~/.agents/skills/obsidian-ontology-sync-1.0.1/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## 🎨 内容创作
|
||||
|
||||
### 27. blog-writer
|
||||
- **描述:** 博客文章写作
|
||||
- **用途:** 以作家独特风格写博客文章、长篇内容,从研究到Notion发布的完整工作流
|
||||
- **路径:** `~/.agents/skills/blog-writer-0.1.0/SKILL.md`
|
||||
|
||||
### 28. copywriting
|
||||
- **描述:** 文案写作
|
||||
- **用途:** 为落地页、邮件、广告、销售页、营销材料写 persuasive copy,标题、CTA、产品描述、广告文案、邮件序列
|
||||
- **触发词:** "写文案"、"copywriting"、"landing page copy"、"headline"
|
||||
- **路径:** `~/.agents/skills/copywriting-0.1.0/SKILL.md`
|
||||
|
||||
### 29. content-strategy
|
||||
- **描述:** 内容营销策略
|
||||
- **用途:** 为solopreneur业务构建和执行内容营销策略
|
||||
- **触发词:** "内容策略"、"content marketing"、"内容计划"、"内容日历"
|
||||
- **路径:** `~/.agents/skills/content-strategy-0.1.0/SKILL.md`
|
||||
|
||||
### 30. seo-content-writer
|
||||
- **描述:** SEO内容写作
|
||||
- **用途:** 写SEO优化内容、创建博客文章、文章
|
||||
- **触发词:** "写SEO内容"、"创建博客文章"、"内容写作"
|
||||
- **路径:** `~/.agents/skills/seo-content-writer-2.0.0/SKILL.md`
|
||||
|
||||
### 31. social-content
|
||||
- **描述:** 社交媒体内容
|
||||
- **用途:** 创建、安排、优化LinkedIn、Twitter/X、Instagram、TikTok、Facebook等内容
|
||||
- **触发词:** "LinkedIn post"、"Twitter thread"、"社交媒体"、"内容日历"
|
||||
- **路径:** `~/.agents/skills/social-content-generator-0.1.0/SKILL.md`
|
||||
|
||||
### 32. Social Media Scheduler
|
||||
- **描述:** 社交媒体排程
|
||||
- **用途:** 计划、起草、跨平台组织社交媒体内容,创建内容日历
|
||||
- **路径:** `~/.agents/skills/social-media-scheduler-1.0.0/SKILL.md`
|
||||
|
||||
### 33. research-paper-writer
|
||||
- **描述:** 研究论文写作
|
||||
- **用途:** 创建遵循IEEE/ACM格式标准的正式学术论文
|
||||
- **路径:** `~/.agents/skills/research-paper-writer-0.1.0/SKILL.md`
|
||||
|
||||
### 34. Powerpoint / PPTX
|
||||
- **描述:** PowerPoint 演示文稿
|
||||
- **用途:** 创建、检查、编辑Microsoft PowerPoint演示文稿,可靠的布局、模板、占位符、笔记、图表
|
||||
- **路径:** `~/.openclaw/skills/powerpoint-pptx/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## 📊 商业与分析
|
||||
|
||||
### 35. Market Research
|
||||
- **描述:** 市场研究
|
||||
- **用途:** 规模市场、分析竞争对手、用实际框架和数据源验证机会
|
||||
- **路径:** `~/.agents/skills/market-research-1.0.0/SKILL.md`
|
||||
|
||||
### 36. interview-designer
|
||||
- **描述:** 面试设计
|
||||
- **用途:** 分析简历,使用基于证据的方法设计面试策略
|
||||
- **路径:** `~/.agents/skills/interview-designer-1.0.0/SKILL.md`
|
||||
|
||||
### 37. backtest-expert
|
||||
- **描述:** 回测专家
|
||||
- **用途:** 系统交易策略回测的专家指导
|
||||
- **触发词:** 回测、策略验证、鲁棒性测试、避免过度拟合
|
||||
- **路径:** `~/.agents/skills/backtest-expert-0.1.0/SKILL.md`
|
||||
|
||||
### 38. automation-workflows
|
||||
- **描述:** 自动化工作流
|
||||
- **用途:** 设计和实施自动化工作流以节省时间和扩展运营
|
||||
- **触发词:** "自动化"、"automation workflow"、"save time"、"reduce manual work"
|
||||
- **路径:** `~/.agents/skills/automation-workflows-0.1.0/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## 🧠 AI 代理能力
|
||||
|
||||
### 39. proactive-agent-lite
|
||||
- **描述:** 主动代理Lite
|
||||
- **用途:** 将AI代理从任务追随者转变为积极主动的伙伴,具有记忆架构、reverse prompting和自愈模式
|
||||
- **路径:** `~/.openclaw/skills/proactive-agent-lite/SKILL.md`
|
||||
|
||||
### 40. self-improvement
|
||||
- **描述:** 自我改进
|
||||
- **用途:** 捕获学习、错误、纠正以实现持续改进
|
||||
- **触发词:** 命令/操作失败、用户纠正、请求不存在的功能、外部API失败、知识过时
|
||||
- **路径:** `~/.openclaw/skills/self-improving-agent/SKILL.md`
|
||||
|
||||
### 41. self-reflection
|
||||
- **描述:** 自我反思
|
||||
- **用途:** 定期自我反思,分析近期会话,写简洁可行的见解
|
||||
- **路径:** `~/.agents/skills/agent-self-reflection-1.0.0/SKILL.md`
|
||||
|
||||
### 42. brainstorming
|
||||
- **描述:** 头脑风暴
|
||||
- **用途:** 在任何创造性工作之前必须使用 - 创建功能、构建组件、添加功能或修改行为
|
||||
- **路径:** `~/.agents/skills/brainstorming-0.1.0/SKILL.md`
|
||||
|
||||
### 43. writing-plans
|
||||
- **描述:** 写作计划
|
||||
- **用途:** 有规范/需求的多步骤任务规范
|
||||
- **路径:** `~/.agents/skills/writing-plans-0.1.0/SKILL.md`
|
||||
|
||||
### 44. executing-plans
|
||||
- **描述:** 执行计划
|
||||
- **用途:** 在单独会话中执行包含审查检查点的书面实施计划
|
||||
- **路径:** `~/.agents/skills/executing-plans-0.1.0/SKILL.md`
|
||||
|
||||
### 45. task-summary
|
||||
- **描述:** 任务总结
|
||||
- **用途:** 任务完成后生成结构化总结,记录目标、步骤、结果、经验教训
|
||||
- **路径:** `~/.openclaw/skills/task-summary/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## 🔧 工具与系统
|
||||
|
||||
### 46. clawhub
|
||||
- **描述:** ClawHub CLI
|
||||
- **用途:** 从clawhub.com搜索、安装、更新、发布代理技能
|
||||
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/clawhub/SKILL.md`
|
||||
|
||||
### 47. find-skills
|
||||
- **描述:** 发现技能
|
||||
- **用途:** 当用户询问"如何做X"、"找X的技能"、"有能...的技能吗"时帮助用户发现和安装技能
|
||||
- **路径:** `~/.agents/skills/find-skills/SKILL.md`
|
||||
|
||||
### 48. skill-creator
|
||||
- **描述:** 技能创建器
|
||||
- **用途:** 创建有效技能的指南
|
||||
- **路径:** `~/.agents/skills/skill-creator-0.1.0/SKILL.md`
|
||||
|
||||
### 49. skill-vetter
|
||||
- **描述:** 技能审核
|
||||
- **用途:** AI代理的安全优先技能审核,安装来自ClawHub、GitHub或其他来源的技能之前检查
|
||||
- **路径:** `~/.agents/skills/skill-vetter-1.0.0/SKILL.md`
|
||||
|
||||
### 50. clawdefender
|
||||
- **描述:** 安全防御
|
||||
- **用途:** AI代理的安全扫描器和输入清理器,检测prompt注入、命令注入、SSRF、凭证外泄、路径遍历攻击
|
||||
- **路径:** `~/.agents/skills/clawdefender-1/SKILL.md`
|
||||
|
||||
### 51. opencode-controller
|
||||
- **描述:** Opencode 控制器
|
||||
- **用途:** 通过斜杠命令控制Opencode,管理会话、选择模型、切换代理
|
||||
- **路径:** `~/.agents/skills/opencode-controller-1.0.0/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## 🌤️ 生活与娱乐
|
||||
|
||||
### 52. weather
|
||||
- **描述:** 天气
|
||||
- **用途:** 通过wttr.in或Open-Meteo获取当前天气和预报
|
||||
- **触发词:** 天气、温度、预报
|
||||
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/weather/SKILL.md`
|
||||
|
||||
### 53. video-frames
|
||||
- **描述:** 视频帧提取
|
||||
- **用途:** 使用ffmpeg从视频提取帧或短片段
|
||||
- **路径:** `~/.agents/skills/video-frames-1.0.0/SKILL.md`
|
||||
|
||||
### 54. FFmpeg Video Editor
|
||||
- **描述:** FFmpeg 视频编辑器
|
||||
- **用途:** 从自然语言视频编辑请求生成FFmpeg命令 - 剪切、裁剪、转换、压缩、改变宽高比、提取音频等
|
||||
- **路径:** `~/.agents/skills/ffmpeg-video-editor-1.0.0/SKILL.md`
|
||||
|
||||
### 55. UI/UX Pro Max
|
||||
- **描述:** UI/UX 设计
|
||||
- **用途:** UI/UX设计智能和实现指导,构建精美界面
|
||||
- **路径:** `~/.agents/skills/ui-ux-pro-max-0.1.0/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## 🛡️ 系统与运维
|
||||
|
||||
### 56. healthcheck
|
||||
- **描述:** 主机安全检查
|
||||
- **用途:** 主机安全加固和风险容忍配置
|
||||
- **触发词:** 安全审计、防火墙/SSH/更新加固、风险态势、暴露审查、OpenClaw cron调度
|
||||
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/healthcheck/SKILL.md`
|
||||
|
||||
### 57. node-connect
|
||||
- **描述:** OpenClaw 节点连接
|
||||
- **用途:** 诊断Android、iOS、macOS companion app的配对失败
|
||||
- **触发词:** QR/设置码手动连接失败、本地Wi-Fi正常但VPS/tailnet不正常、配对要求、未经授权、bootstrap token无效/过期
|
||||
- **路径:** `/opt/homebrew/lib/node_modules/openclaw/skills/node-connect/SKILL.md`
|
||||
|
||||
---
|
||||
|
||||
## 📊 技能分类汇总
|
||||
|
||||
| 分类 | 数量 | 技能 |
|
||||
|------|------|------|
|
||||
| Apple 生态 | 3 | apple-notes, apple-reminders, accli |
|
||||
| 云服务/协作 | 7 | gog, feishu-*(6个) |
|
||||
| 通讯工具 | 1 | slack |
|
||||
| 网络/浏览器 | 2 | agent-browser, tavily-search |
|
||||
| 开发工具 | 8 | Docker, Code, git-essentials, frontend-design, security-auditor, architecture-designer, supabase-postgres-best-practices, tmux |
|
||||
| 笔记/知识管理 | 5 | obsidian, ontology, Memory, obsidian-ontology-sync, task-summary |
|
||||
| 内容创作 | 8 | blog-writer, copywriting, content-strategy, seo-content-writer, social-content, Social Media Scheduler, research-paper-writer, Powerpoint/PPTX |
|
||||
| 商业/分析 | 4 | Market Research, interview-designer, backtest-expert, automation-workflows |
|
||||
| AI代理能力 | 7 | proactive-agent-lite, self-improvement, self-reflection, brainstorming, writing-plans, executing-plans, task-summary |
|
||||
| 工具/系统 | 6 | clawhub, find-skills, skill-creator, skill-vetter, clawdefender, opencode-controller |
|
||||
| 生活/娱乐 | 4 | weather, video-frames, FFmpeg Video Editor, UI/UX Pro Max |
|
||||
| 系统/运维 | 2 | healthcheck, node-connect |
|
||||
|
||||
**总计: 57 个技能**
|
||||
|
||||
---
|
||||
|
||||
*笔记创建于 2026-03-19 by 星辉*
|
||||
87
openclaw/knowledgebase/backup-script-usage.md
Normal file
87
openclaw/knowledgebase/backup-script-usage.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# OpenClaw 备份脚本使用指南
|
||||
|
||||
## 概述
|
||||
|
||||
OpenClaw 备份脚本用于自动备份 OpenClaw 配置到 NAS 存储。
|
||||
|
||||
## 脚本位置
|
||||
|
||||
- **Mac Mini**: `~/.openclaw/scripts/backup-openclaw.sh`
|
||||
- **Ubuntu2**: `/home/shenwei/.openclaw/scripts/backup-openclaw.sh`
|
||||
|
||||
## 使用方法
|
||||
|
||||
```bash
|
||||
# Mac Mini 备份
|
||||
~/.openclaw/scripts/backup-openclaw.sh macmini
|
||||
|
||||
# Ubuntu2 备份
|
||||
/home/shenwei/.openclaw/scripts/backup-openclaw.sh ubuntu2
|
||||
```
|
||||
|
||||
## 文件命名规则
|
||||
|
||||
备份文件命名格式:`openclaw-{node}-{timestamp}.tar`
|
||||
|
||||
| 节点 | 示例 |
|
||||
|------|------|
|
||||
| Mac Mini | `openclaw-macmini-20260317112001.tar` |
|
||||
| Ubuntu2 | `openclaw-ubuntu2-20260317112001.tar` |
|
||||
|
||||
## 备份目的地
|
||||
|
||||
- **NAS 路径**: `/volume2/backup/openclaw/`
|
||||
- **访问方式**: SSH (shenwei@nas)
|
||||
|
||||
## 执行流程
|
||||
|
||||
```
|
||||
[1/5] Creating backup: openclaw-{node}-{timestamp}.tar
|
||||
[2/5] Verifying backup...
|
||||
[3/5] Transferring to NAS...
|
||||
[4/5] Verifying transfer...
|
||||
[5/5] Cleaning up local temporary files...
|
||||
```
|
||||
|
||||
## 备份内容
|
||||
|
||||
- `~/.openclaw/` 目录
|
||||
- 排除项:
|
||||
- `logs/` 目录
|
||||
- `*.log` 文件
|
||||
- `.git` 目录
|
||||
|
||||
## 验证备份
|
||||
|
||||
查看 NAS 上的备份文件:
|
||||
|
||||
```bash
|
||||
ssh nas "ls -la /volume2/backup/openclaw/"
|
||||
```
|
||||
|
||||
## 验证 tar 文件
|
||||
|
||||
```bash
|
||||
ssh nas "tar -tvf /volume2/backup/openclaw/openclaw-{node}-{timestamp}.tar"
|
||||
```
|
||||
|
||||
## 定时备份 (可选)
|
||||
|
||||
可以使用 cron 设置定时备份:
|
||||
|
||||
```bash
|
||||
# 每天凌晨 3 点自动备份
|
||||
0 3 * * * /home/shenwei/.openclaw/scripts/backup-openclaw.sh ubuntu2 >> /home/shenwei/.openclaw/logs/backup.log 2>&1
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 确保 Ubuntu2 到 NAS 的 SSH 免密登录已配置
|
||||
2. 确保 NAS 备份目录存在
|
||||
3. 备份文件会自动清理本地临时文件
|
||||
4. 首次使用建议手动执行测试
|
||||
|
||||
## 相关文档
|
||||
|
||||
- SSH 免密登录配置: [[macmini-nas-ssh-config]]
|
||||
- Ubuntu2 SSH 配置: [[openclaw/knowledgebase/ubuntu2-ssh-config]]
|
||||
0
openclaw/knowledgebase/hello.md
Normal file
0
openclaw/knowledgebase/hello.md
Normal file
122
openclaw/knowledgebase/macmini-nas-ssh-config.md
Normal file
122
openclaw/knowledgebase/macmini-nas-ssh-config.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# Mac Mini 配置 SSH 免密登录到 NAS
|
||||
|
||||
## 概述
|
||||
|
||||
本文档记录 Mac Mini (192.168.3.189) 配置 SSH 免密登录到 NAS (192.168.3.17) 的详细步骤。
|
||||
|
||||
## 前提条件
|
||||
|
||||
- Mac Mini 已安装 SSH 客户端(内置)
|
||||
- NAS 已开启 SSH 服务
|
||||
- 拥有 NAS 用户名和密码
|
||||
|
||||
## SSH 密钥配置
|
||||
|
||||
### 1. 生成 SSH 密钥(如不存在)
|
||||
|
||||
```bash
|
||||
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
|
||||
```
|
||||
|
||||
### 2. 传输公钥到 NAS
|
||||
|
||||
```bash
|
||||
# 方法1:使用 sshpass(需要安装)
|
||||
sshpass -p 'NAS密码' ssh -o StrictHostKeyChecking=no shenwei@192.168.3.17 'cat >> ~/.ssh/authorized_keys'
|
||||
|
||||
# 方法2:手动复制
|
||||
# 1. 查看公钥
|
||||
cat ~/.ssh/id_ed25519.pub
|
||||
# 2. 登录 NAS
|
||||
ssh shenwei@192.168.3.17
|
||||
# 3. 追加公钥到 authorized_keys
|
||||
echo '公钥内容' >> ~/.ssh/authorized_keys
|
||||
```
|
||||
|
||||
## ~/.ssh/config 配置
|
||||
|
||||
### 完整配置示例
|
||||
|
||||
```bash
|
||||
# NAS
|
||||
Host nas
|
||||
HostName 192.168.3.17
|
||||
User shenwei
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
ProxyCommand none
|
||||
|
||||
# Ubuntu1
|
||||
Host ubuntu1
|
||||
HostName 192.168.3.47
|
||||
User shenwei
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
ProxyCommand none
|
||||
|
||||
# Ubuntu2
|
||||
Host ubuntu2
|
||||
HostName 192.168.3.45
|
||||
User shenwei
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
ProxyCommand none
|
||||
|
||||
# Mac Mini (本地)
|
||||
Host macmini
|
||||
HostName 192.168.3.189
|
||||
User weishen
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
ProxyCommand none
|
||||
|
||||
# VPS1
|
||||
Host vps1
|
||||
HostName 192.227.222.142
|
||||
User root
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
ProxyCommand none
|
||||
|
||||
# VPS2
|
||||
Host vps2
|
||||
HostName 104.194.92.188
|
||||
User root
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
ProxyCommand none
|
||||
```
|
||||
|
||||
## 测试免密登录
|
||||
|
||||
```bash
|
||||
# 测试 NAS 连接
|
||||
ssh nas "echo success"
|
||||
|
||||
# 测试所有服务器
|
||||
for server in macmini ubuntu1 ubuntu2 nas; do
|
||||
ssh $server "echo $server OK"
|
||||
done
|
||||
```
|
||||
|
||||
## 已配置的服务器
|
||||
|
||||
| 主机 | IP | 用户 | 状态 |
|
||||
|------|-----|------|------|
|
||||
| nas | 192.168.3.17 | shenwei | ✅ 已配置 |
|
||||
| ubuntu1 | 192.168.3.47 | shenwei | ✅ 已配置 |
|
||||
| ubuntu2 | 192.168.3.45 | shenwei | ✅ 已配置 |
|
||||
| macmini | 192.168.3.189 | weishen | ✅ 已配置 |
|
||||
| vps1 | 192.227.222.142 | root | ✅ 已配置 |
|
||||
| vps2 | 104.194.92.188 | root | ✅ 已配置 |
|
||||
|
||||
## 故障排查
|
||||
|
||||
### 问题:Could not resolve hostname nas
|
||||
|
||||
**解决**:确保 ~/.ssh/config 中已添加 nas 别名配置
|
||||
|
||||
### 问题:Permission denied
|
||||
|
||||
**解决**:
|
||||
1. 检查公钥是否已添加到目标服务器的 ~/.ssh/authorized_keys
|
||||
2. 检查 ~/.ssh 目录权限应为 700
|
||||
3. 检查 ~/.ssh/authorized_keys 权限应为 600
|
||||
|
||||
## 相关文档
|
||||
|
||||
- Ubuntu2 SSH 配置: [[openclaw/knowledgebase/ubuntu2-ssh-config]]
|
||||
445
openclaw/knowledgebase/macmini-webdav-setup.md
Normal file
445
openclaw/knowledgebase/macmini-webdav-setup.md
Normal file
@@ -0,0 +1,445 @@
|
||||
# Mac Mini WebDAV 服务配置指南
|
||||
|
||||
## 目的
|
||||
在 Mac Mini 上通过原生 Apache 配置 WebDAV 服务,用于共享 Obsidian 笔记。
|
||||
|
||||
---
|
||||
|
||||
## 一、Mac Mini 本地配置
|
||||
|
||||
### 步骤 1: 启用 WebDAV 模块
|
||||
|
||||
编辑 Apache 配置文件,启用 DAV 模块:
|
||||
|
||||
```bash
|
||||
sudo nano /etc/apache2/httpd.conf
|
||||
```
|
||||
|
||||
找到以下行并取消注释(去掉 `#`):
|
||||
|
||||
```apache
|
||||
LoadModule dav_module libexec/apache2/mod_dav.so
|
||||
LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
|
||||
LoadModule dav_lock_module libexec/apache2/mod_dav_lock_module
|
||||
```
|
||||
|
||||
### 步骤 2: 创建 DavLockDB 目录
|
||||
|
||||
WebDAV 需要一个目录来存储锁文件:
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /var/run/dav
|
||||
sudo chown _www:_www /var/run/dav
|
||||
```
|
||||
|
||||
### 步骤 3: 创建 WebDAV 目录并链接 Obsidian
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /Library/WebServer/Documents/Obsidian
|
||||
sudo ln -s /Users/weishen/Obsidian/shenwei /Library/WebServer/Documents/Obsidian/shenwei
|
||||
```
|
||||
|
||||
### 步骤 4: 配置 WebDAV
|
||||
|
||||
创建配置文件:
|
||||
|
||||
```bash
|
||||
sudo nano /etc/apache2/other/webdav.conf
|
||||
```
|
||||
|
||||
**配置内容(完整版):**
|
||||
|
||||
```apache
|
||||
DavLockDB /var/run/dav/DavLock
|
||||
|
||||
<IfModule mod_dav.c>
|
||||
DAVMinTimeout 240
|
||||
</IfModule>
|
||||
|
||||
Alias /webdav "/Library/WebServer/Documents"
|
||||
|
||||
<Directory "/Library/WebServer/Documents">
|
||||
Options Indexes FollowSymLinks
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
|
||||
DAV On
|
||||
DAVDepthInfinity off
|
||||
|
||||
Header set Allow "OPTIONS, GET, HEAD, POST, PUT, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK"
|
||||
|
||||
AuthType Basic
|
||||
AuthName "WebDAV"
|
||||
AuthUserFile /etc/apache2/webdav.users
|
||||
Require valid-user
|
||||
</Directory>
|
||||
```
|
||||
|
||||
### 步骤 5: 创建访问用户
|
||||
|
||||
```bash
|
||||
sudo htpasswd -c /etc/apache2/webdav.users webdav
|
||||
```
|
||||
|
||||
输入密码: `macmini_dav`
|
||||
|
||||
> **注意**: 用户名和密码需要与后续 Obsidian 客户端配置一致
|
||||
|
||||
### 步骤 6: 设置目录权限(重要!)
|
||||
|
||||
WebDAV 需要 Apache 运行用户 (`_www`) 对 Obsidian 目录有读写权限:
|
||||
|
||||
```bash
|
||||
# 修复用户目录权限
|
||||
sudo chmod o+x /Users/weishen
|
||||
sudo chmod -R o+rx /Users/weishen/Obsidian
|
||||
|
||||
# 将 Obsidian 目录所有权改为 _www
|
||||
sudo chown -R _www:_www /Library/WebServer/Documents/Obsidian
|
||||
sudo chown -R _www:_www /Users/weishen/Obsidian/shenwei
|
||||
sudo chmod -R 775 /Users/weishen/Obsidian/shenwei
|
||||
```
|
||||
|
||||
### 步骤 7: 启动 Apache 服务
|
||||
|
||||
```bash
|
||||
sudo apachectl start
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、FRP 端口映射配置
|
||||
|
||||
在 Mac Mini 上编辑 FRP 配置文件:
|
||||
|
||||
```bash
|
||||
sudo nano /opt/frp/frp_0.65.0_darwin_arm64/frpc.toml
|
||||
```
|
||||
|
||||
**添加以下配置(WebDAV 使用 80 端口):**
|
||||
|
||||
```toml
|
||||
[[proxies]]
|
||||
name = "macmini-webdav"
|
||||
type = "tcp"
|
||||
localIP = "127.0.0.1"
|
||||
localPort = 80
|
||||
remotePort = 60080
|
||||
```
|
||||
|
||||
> **重要**: 如果 Mac Mini 上设置了代理(科学上网),需要在 FRPC 启动时添加 `no_proxy` 环境变量:
|
||||
> ```bash
|
||||
> export no_proxy="192.227.222.142,127.0.0.1,localhost"
|
||||
> cd /opt/frp/frp_0.65.0_darwin_arm64 && ./frpc -c frpc.toml
|
||||
> ```
|
||||
|
||||
---
|
||||
|
||||
## 三、VPS1 Caddy 反向代理配置
|
||||
|
||||
在 VPS1 上编辑 Caddyfile:
|
||||
|
||||
```bash
|
||||
sudo nano /etc/caddy/Caddyfile
|
||||
```
|
||||
|
||||
**添加以下配置:**
|
||||
|
||||
```bash
|
||||
# WebDAV 外网访问
|
||||
macwebdav.ishenwei.online {
|
||||
reverse_proxy localhost:60080
|
||||
}
|
||||
```
|
||||
|
||||
**重载 Caddy 配置:**
|
||||
|
||||
```bash
|
||||
sudo systemctl reload caddy
|
||||
```
|
||||
|
||||
> **注意**: 需要先在 DNS 服务商处添加 A 记录:
|
||||
> - 主机记录: `macwebdav`
|
||||
> - 记录类型: `A`
|
||||
> - 记录值: `192.227.222.142` (VPS1 IP)
|
||||
|
||||
---
|
||||
|
||||
## 四、防火墙配置
|
||||
|
||||
### VPS1 防火墙(如果使用 UFW)
|
||||
|
||||
```bash
|
||||
sudo ufw allow 60080/tcp
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、常用命令
|
||||
|
||||
### Apache 命令
|
||||
|
||||
| 命令 | 功能 |
|
||||
|------|------|
|
||||
| `sudo apachectl start` | 启动 Apache |
|
||||
| `sudo apachectl stop` | 停止 Apache |
|
||||
| `sudo apachectl restart` | 重启 Apache |
|
||||
| `sudo apachectl -t` | 检查配置语法 |
|
||||
| `sudo apachectl -M \| grep dav` | 确认 WebDAV 模块已加载 |
|
||||
|
||||
### FRP 命令
|
||||
|
||||
```bash
|
||||
# 重启 FRPC(Mac Mini 上)
|
||||
# in tmux
|
||||
tmux attach -t frpc
|
||||
# 停止现有进程 (Ctrl+C in tmux)
|
||||
# 重启(注意添加 no_proxy)
|
||||
export no_proxy="192.227.222.142,127.0.0.1,localhost" && cd /opt/frp/frp_0.65.0_darwin_arm64 && ./frpc -c frpc.toml
|
||||
```
|
||||
|
||||
### Caddy 命令(VPS1)
|
||||
|
||||
```bash
|
||||
sudo systemctl reload caddy
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 六、Obsidian 客户端连接配置(最终验证版本)
|
||||
|
||||
### 配置参数
|
||||
|
||||
| 配置项 | 值 |
|
||||
|--------|-----|
|
||||
| **服务器地址** | `https://macwebdav.ishenwei.online/webdav/Obsidian/` |
|
||||
| **用户名** | `webdav` |
|
||||
| **密码** | `macmini_dav` |
|
||||
| **鉴权类型** | `basic` |
|
||||
| **Depth header** | `只支持 depth='1'` |
|
||||
|
||||
### 配置步骤
|
||||
|
||||
1. 打开 Obsidian
|
||||
2. 安装 **Remotely Save** 插件(或其他 WebDAV 同步插件)
|
||||
3. 选择远程服务为 **WebDAV**
|
||||
4. 填写上方配置参数
|
||||
5. 点击 **检查** 按钮验证连接
|
||||
6. 开始同步
|
||||
|
||||
---
|
||||
|
||||
## 七、内网访问
|
||||
|
||||
- **URL**: `http://192.168.3.189/webdav/`
|
||||
- **用户名**: `webdav`
|
||||
- **密码**: `macmini_dav`
|
||||
|
||||
---
|
||||
|
||||
## 八、注意事项
|
||||
|
||||
1. **安全提示**:
|
||||
- Basic 认证密码明文传输,建议仅在内网使用
|
||||
- 外网访问建议配合 HTTPS(Caddy 自动提供 Let's Encrypt)
|
||||
|
||||
2. **端口规划**:
|
||||
- Apache: 80
|
||||
- FRP 映射: 60080
|
||||
|
||||
3. **防火墙**:
|
||||
- Mac 防火墙需允许 80 端口入站
|
||||
- VPS 防火墙需开放 FRP 映射的端口
|
||||
|
||||
4. **开机自启**:
|
||||
- Apache 开机自动启动(MacOS 默认行为)
|
||||
- FRPC 需配置开机自启(tmux 或 launchd)
|
||||
|
||||
5. **代理问题**:
|
||||
- 如果 Mac Mini 使用科学上网代理,FRPC 需要设置 `no_proxy` 环境变量
|
||||
- 参考上面的 FRP 命令部分
|
||||
|
||||
---
|
||||
|
||||
## 九、故障排除
|
||||
|
||||
### 问题:500 Internal Server Error
|
||||
|
||||
**原因**: DavLockDB 目录权限不足
|
||||
|
||||
**解决**:
|
||||
```bash
|
||||
sudo chown -R _www:_www /var/run/dav
|
||||
```
|
||||
|
||||
### 问题:403 Forbidden
|
||||
|
||||
**原因**: Obsidian 目录权限不足,Apache 无法写入
|
||||
|
||||
**解决**:
|
||||
```bash
|
||||
sudo chown -R _www:_www /Library/WebServer/Documents/Obsidian
|
||||
sudo chown -R _www:_www /Users/weishen/Obsidian/shenwei
|
||||
sudo chmod -R 775 /Users/weishen/Obsidian/shenwei
|
||||
```
|
||||
|
||||
### 问题:无法解析域名
|
||||
|
||||
**原因**: DNS 记录未生效
|
||||
|
||||
**解决**:
|
||||
1. 确认 DNS A 记录已添加
|
||||
2. 等待 5-30 分钟 DNS 传播
|
||||
3. 本地刷新 DNS 缓存:`sudo dscacheutil -flushcache`
|
||||
|
||||
### 问题:FRPC 连接超时
|
||||
|
||||
**原因**: Mac Mini 代理设置干扰 FRPC 连接
|
||||
|
||||
**解决**:
|
||||
```bash
|
||||
export no_proxy="192.227.222.142,127.0.0.1,localhost"
|
||||
```
|
||||
|
||||
### 检查 Apache 状态
|
||||
```bash
|
||||
sudo apachectl status
|
||||
```
|
||||
|
||||
### 查看日志
|
||||
```bash
|
||||
sudo tail -f /var/log/apache2/error_log
|
||||
```
|
||||
|
||||
### 确认 WebDAV 模块加载
|
||||
```bash
|
||||
sudo apachectl -M | grep -E "dav|webdav"
|
||||
```
|
||||
|
||||
### 测试本地访问
|
||||
```bash
|
||||
curl -u webdav:macmini_dav http://127.0.0.1/webdav/
|
||||
```
|
||||
|
||||
### 测试 FRP 端口连通性(VPS1)
|
||||
```bash
|
||||
curl -u webdav:macmini_dav http://localhost:60080/webdav/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 十、测试步骤
|
||||
|
||||
### 阶段 1: Apache 本地测试(Mac Mini)
|
||||
|
||||
#### 1.1 检查 Apache 状态
|
||||
```bash
|
||||
sudo apachectl status
|
||||
```
|
||||
**预期输出**: Apache 运行中 (running)
|
||||
|
||||
#### 1.2 确认 WebDAV 模块已加载
|
||||
```bash
|
||||
sudo apachectl -M | grep -E "dav|webdav"
|
||||
```
|
||||
**预期输出**:
|
||||
- `dav_module (shared)`
|
||||
- `dav_fs_module (shared)`
|
||||
- `dav_lock_module (shared)`
|
||||
|
||||
#### 1.3 测试本地认证访问
|
||||
```bash
|
||||
curl -u webdav:macmini_dav -I http://127.0.0.1/webdav/
|
||||
```
|
||||
**预期输出**: HTTP/1.1 200 OK
|
||||
|
||||
#### 1.4 列出 WebDAV 目录内容
|
||||
```bash
|
||||
curl -u webdav:macmini_dav -X PROPFIND -H "Depth: 1" http://127.0.0.1/webdav/Obsidian/shenwei/
|
||||
```
|
||||
**预期输出**: XML 格式的目录列表
|
||||
|
||||
---
|
||||
|
||||
### 阶段 2: FRP 连通性测试
|
||||
|
||||
#### 2.1 检查 FRPC 状态(Mac Mini)
|
||||
```bash
|
||||
tmux capture-pane -t frpc -p | tail -10
|
||||
```
|
||||
**预期输出**: 看到 `[macmini-webdav] start proxy success`
|
||||
|
||||
#### 2.2 测试 VPS1 端口监听
|
||||
```bash
|
||||
# 在 VPS1 上执行
|
||||
sudo ss -tlnp | grep 60080
|
||||
```
|
||||
**预期输出**: `*:60080 LISTEN`
|
||||
|
||||
#### 2.3 测试内网通过 FRP 访问(从 VPS1 测试)
|
||||
```bash
|
||||
# 在 VPS1 上执行
|
||||
curl -u webdav:macmini_dav -I http://localhost:60080/webdav/
|
||||
```
|
||||
**预期输出**: HTTP/1.1 200 OK
|
||||
|
||||
---
|
||||
|
||||
### 阶段 3: Caddy 反向代理测试
|
||||
|
||||
#### 3.1 检查 DNS 解析
|
||||
```bash
|
||||
dig +short macwebdav.ishenwei.online
|
||||
```
|
||||
**预期输出**: `192.227.222.142`
|
||||
|
||||
#### 3.2 测试 HTTPS 访问
|
||||
```bash
|
||||
curl -k -u webdav:macmini_dav -I https://macwebdav.ishenwei.online/webdav/
|
||||
```
|
||||
**预期输出**: HTTP/1.1 200 OK
|
||||
|
||||
---
|
||||
|
||||
### 阶段 4: 完整链路测试清单
|
||||
|
||||
| 序号 | 测试项 | 测试命令/方法 | 预期结果 |
|
||||
|------|--------|--------------|----------|
|
||||
| 1 | Apache 运行中 | `sudo apachectl status` | running |
|
||||
| 2 | WebDAV 模块已加载 | `apachectl -M \| grep dav` | dav_module |
|
||||
| 3 | 本地认证访问 | `curl -u webdav:macmini_dav http://127.0.0.1/webdav/` | 200 OK |
|
||||
| 4 | FRPC 运行正常 | 查看 tmux 日志 | proxy success |
|
||||
| 5 | VPS1 端口监听 | `ss -tlnp \| grep 60080` | LISTEN |
|
||||
| 6 | 外网 HTTPS 访问 | `curl -k -u webdav:macmini_dav https://macwebdav.ishenwei.online/` | 200 OK |
|
||||
| 7 | Obsidian 连接 | 客户端测试 | 同步成功 |
|
||||
|
||||
---
|
||||
|
||||
## 十一、配置汇总表
|
||||
|
||||
| 项目 | 值 |
|
||||
| --------------------------------- | -------------------------------------------------- |
|
||||
| 内网 URL | http://192.168.3.189/webdav/ |
|
||||
| 外网域名 | https://macwebdav.ishenwei.online |
|
||||
| **Obsidian Remotely Save 最终配置路径** | https://macwebdav.ishenwei.online/webdav/Obsidian/ |
|
||||
| FRP 本地端口 | 80 |
|
||||
| FRP 远程端口 | 60080 |
|
||||
| WebDAV 用户 | webdav |
|
||||
| WebDAV 密码 | macmini_dav |
|
||||
|
||||
---
|
||||
|
||||
## 十二、关键修正记录
|
||||
|
||||
本配置在测试过程中发现并修复了以下问题:
|
||||
|
||||
1. **WebDAV 模块未启用**: 需要在 `httpd.conf` 中取消注释 DAV 相关模块
|
||||
2. **DavLockDB 权限问题**: 需要创建目录并设置 `_www` 所有权
|
||||
3. **符号链接权限问题**: 符号链接使用绝对路径 `/Users/weishen/...`
|
||||
4. **Obsidian 目录权限**: 需要将目录所有权改为 `_www` 并设置 775 权限
|
||||
5. **FRPC 代理干扰**: Mac Mini 的代理设置会干扰 FRPC 连接,需要设置 `no_proxy`
|
||||
6. **DNS 解析延迟**: 添加 DNS 记录后需要等待传播
|
||||
|
||||
---
|
||||
|
||||
*文档更新时间: 2026-03-19*
|
||||
35
openclaw/knowledgebase/ubuntu2-ssh-config.md
Normal file
35
openclaw/knowledgebase/ubuntu2-ssh-config.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Ubuntu2 SSH 配置
|
||||
|
||||
## 背景
|
||||
Ubuntu2 需要能够通过 "ssh nas" 免密登录到 NAS。
|
||||
|
||||
## 步骤
|
||||
|
||||
### 1. 生成 SSH 密钥(如不存在)
|
||||
```bash
|
||||
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
|
||||
```
|
||||
|
||||
### 2. 配置 ~/.ssh/config
|
||||
```bash
|
||||
Host nas
|
||||
HostName 192.168.3.17
|
||||
User shenwei
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
```
|
||||
|
||||
### 3. 传输公钥到 NAS
|
||||
```bash
|
||||
# 方法1:使用 sshpass(需要安装)
|
||||
sshpass -p '密码' ssh -o StrictHostKeyChecking=no shenwei@192.168.3.17 'cat >> ~/.ssh/authorized_keys'
|
||||
|
||||
# 方法2:手动复制公钥内容
|
||||
cat ~/.ssh/id_ed25519.pub
|
||||
# 然后登录 NAS 追加到 ~/.ssh/authorized_keys
|
||||
```
|
||||
|
||||
### 4. 测试
|
||||
```bash
|
||||
ssh nas "echo success"
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user