SSH/SFTP 工具
MyDeskBot Desktop 提供无缝的 SSH 和 SFTP 集成,让 AI 助手能够直接与远程服务器交互。
功能特性
SSH 功能
- 执行远程命令
- 在远程服务器上运行脚本
- 监控服务器状态
- 部署应用程序
- 调试远程问题
SFTP 功能
- 安全传输文件
- 浏览远程目录
- 编辑远程文件
- 管理文件权限
- 同步本地和远程目录
设置
1. 配置 SSH 连接
- 打开 MyDeskBot Desktop
- 进入 设置 → SSH/SFTP
- 点击"添加服务器"
- 填写连接详情:
- 服务器地址/主机名
- 端口(默认:22)
- 用户名
- 认证方式(密码或 SSH 密钥)
2. SSH 密钥认证(推荐)
为了更好的安全性,使用 SSH 密钥:
bash
# 生成新的 SSH 密钥(如果没有)
ssh-keygen -t ed25519 -C "mydeskbot"
# 将公钥复制到远程服务器
ssh-copy-id user@remote-server.com然后在 MyDeskBot 中:
- 选择"SSH 密钥"作为认证方式
- 浏览到您的私钥文件
- 如果密钥有密码保护,输入密码短语
3. 测试连接
点击"测试连接"验证服务器是否可访问。
使用示例
远程命令执行
markdown
用户: "检查生产服务器的磁盘使用情况"
AI: [执行 SSH 命令]
ssh production "df -h"Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 50G 12G 36G 26% /文件传输
markdown
用户: "将新构建上传到服务器"
AI: [通过 SFTP 传输文件]
sftp production
put dist/build.zip /var/www/releases/远程脚本执行
markdown
用户: "在暂存环境运行数据库迁移脚本"
AI: [远程执行脚本]
ssh staging "cd /app && npm run migrate"服务器监控
markdown
用户: "检查 CPU 和内存使用情况"
AI: [运行监控命令]
ssh server "top -bn1 | head -20"部署应用
markdown
用户: "将最新版本部署到生产环境"
AI: [运行部署流程]
ssh production "cd /app && git pull && npm install && npm run build && pm2 restart all"AI 集成
自然语言操作
AI 理解高级命令并将其转换为适当的 SSH/SFTP 操作:
markdown
用户: "备份数据库并下载备份文件"
AI: [执行多步骤操作]
1. ssh server "pg_dump mydb > backup.sql"
2. sftp server
3. get backup.sql ./backups/错误处理
AI 自动处理常见问题:
- 连接断开时自动重连
- 重试失败的操作
- 提供清晰的错误消息
- 针对常见问题建议修复方法
安全
连接安全
- 所有连接使用 SSH 协议(加密)
- 凭证安全存储在密钥链中
- 推荐使用 SSH 密钥而非密码
AI 安全
- 破坏性命令需要明确确认
- 文件删除需要批准
- AI 无法在黑名单服务器上执行命令
- 所有操作都被记录以供审计
最佳实践
- 使用 SSH 密钥:比密码更安全
- 限制权限:创建具有最小必需权限的用户
- 使用跳板主机:用于生产服务器
- 定期轮换:定期轮换 SSH 密钥
- 监控访问:定期查看 SSH 访问日志
高级功能
自定义命令
为常用命令创建快捷方式:
json
{
"sshCommands": {
"restart-nginx": "sudo systemctl restart nginx",
"view-logs": "sudo journalctl -u myapp -f",
"deploy": "/opt/scripts/deploy.sh"
}
}文件同步
自动同步本地和远程之间的目录:
markdown
用户: "将代码目录同步到服务器"
AI: [通过 SSH 运行 rsync]
rsync -avz --delete ./src/ user@server:/app/src/多服务器操作
在多个服务器上执行相同命令:
markdown
用户: "检查所有 Web 服务器的 nginx 状态"
AI: [遍历服务器]
web-1: nginx 正在运行
web-2: nginx 正在运行
web-3: nginx 未运行 ⚠️故障排除
连接被拒绝
- 验证服务器正在运行
- 检查 SSH 服务是否已启用
- 确保防火墙允许 SSH
- 验证正确的主机名/IP 和端口
认证失败
- 验证用户名和密码
- 检查 SSH 密钥权限(应为 600)
- 确保公钥在
~/.ssh/authorized_keys中 - 检查密钥密码短语问题
超时问题
- 检查网络连接
- 在配置中增加超时设置
- 验证 DNS 解析
- 检查网络延迟
权限被拒绝
- 验证用户具有必要权限
- 检查 sudo 要求
- 确保命令路径在用户的 PATH 中
- 检查 SELinux/AppArmor 策略
与其他工具集成
数据库工具
通过 SSH 隧道访问远程数据库:
markdown
用户: "通过 SSH 隧道连接生产数据库"
AI: [设置隧道并连接]
ssh -L 5432:localhost:5432 user@productionGit 集成
通过 SSH 部署:
markdown
用户: "将更改推送到远程仓库"
AI: [通过 SSH 执行 git push]
git push origin main监控工具
设置自动监控:
markdown
用户: "监控服务器日志并在出现错误时提醒"
AI: [设置日志监控]
ssh server "tail -f /var/log/app.log | grep --line-buffered ERROR"