关于 ssh-remote
ssh-remote 是用于通过 SSH 管理远程系统和传输文件的参考技能,汇集连接、隧道、密钥管理及安全配置指南,面向开发者和运维人员。
主要功能
- 01SSH 连接与配置模式
- 02rsync、scp 和 sftp 传输指南
- 03本地、远程及 SOCKS 隧道
- 04跳板机与连接复用
- 05密钥管理与安全加固清单
适用场景
- 01连接并管理远程服务器
- 02传输文件或同步目录
- 03通过 SSH 隧道转发端口
- 04规划安全的 SSH 密钥与主机设置
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oakoss/ agent-skills --skill ssh-remote安装后在 Claude Code 中输入/ssh-remote确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/connections.mdfile-transfer.mdkey-management.mdtunneling.md详细介绍
SSH 远程访问
概述
SSH(Secure Shell)可在不可信网络上提供加密的远程访问、文件传输和隧道功能。OpenSSH 是 Linux、macOS 和 Windows(通过内置客户端)上的标准实现。客户端配置位于 ~/.ssh/config,支持按主机设置、身份管理和连接复用。
适用场景: 远程服务管理、安全文件传输、端口转发、跳板主机穿透、自动化部署、SOCKS 代理。
不适用场景: 通过 WAN 进行高吞吐量的大批量数据传输(使用 Globus 或类似工具)、图形界面繁重的远程桌面(使用 VNC/RDP)、容器编排(使用 kubectl/docker CLI)。
快速参考
| 模式 | 命令 / 指令 | 要点 |
|---|---|---|
| 基本连接 | ssh user@host | 非默认端口请添加 -p PORT |
| 身份文件 | ssh -i ~/.ssh/key user@host | 显式指定私钥 |
| 远程命令 | ssh user@host "command" | 交互式命令请添加 -t |
| SSH 配置别名 | ~/.ssh/config 中的 Host myserver 块 | 简化重复连接 |
| 文件复制(rsync) | rsync -avzP src user@host:dest | 所有传输场景下均优先于 scp |
| 文件复制(scp) | scp file user@host:path | 旧版协议;内部使用 SFTP |
| 本地隧道 | ssh -L local:remote_host:remote_port | 在本地访问远程服务 |
| 远程隧道 | ssh -R remote:localhost:local_port | 向远程端开放本地服务 |
| SOCKS 代理 | ssh -D 1080 user@host | 动态端口转发 |
| 跳板主机 | ssh -J jump user@target | ProxyJump,OpenSSH 7.3 起提供 |
| 密钥生成 | ssh-keygen -t ed25519 | 所有新密钥均推荐使用 Ed25519 |
| FIDO2 密钥 | ssh-keygen -t ed25519-sk | 硬件支持,需 OpenSSH 8.2+ |
| Agent | ssh-add ~/.ssh/key | 在会话期间缓存密钥口令 |
| 多路复用 | 配置文件中的 ControlMaster auto | 在多个会话间复用 TCP 连接 |
| 调试 | ssh -v user@host | 最多可使用 -vvv,以获取最详细输出 |
密钥类型建议
| 算法 | 建议 | 备注 |
|---|---|---|
| Ed25519 | 所有新密钥的默认选择 | 256 位、快速、安全,OpenSSH 6.5+ 支持 |
| Ed25519-SK(FIDO2) | 使用硬件密钥的最强选项 | 需要实体安全密钥,OpenSSH 8.2+ |
| RSA 4096 | 仅用于兼容旧系统 | 仅在远程系统不支持 Ed25519 时使用 |
| ECDSA | 避免使用 | 实现方面存在问题;优先选择 Ed25519 |
文件传输选择指南
| 场景 | 工具 | 原因 |
|---|---|---|
| 定期同步或大型目录 | rsync -avzP | 增量同步、压缩、断点续传、进度显示 |
| 快速复制单个文件 | scp 或 rsync | scp 更简单;rsync 功能更强 |
| 交互式浏览文件 | sftp | Tab 补全、目录导航 |
| 高带宽 WAN 传输 | 专用工具(Globus) | SSH 缓冲区限制会降低 WAN 吞吐量 |
常见错误
| 错误 | 正确做法 |
|---|---|
| 为新配置使用 RSA 密钥 | 生成 Ed25519 密钥——速度更快、体积更小且同样安全 |
使用 scp 进行大型或定期传输 | 使用 rsync -avzP,以实现压缩、显示进度和可恢复的差异同步 |
| 会话期间反复输入密码短语 | 使用 ssh-agent 和 ssh-add 在会话期间缓存密钥 |
| 通过多层跳转进行嵌套 SSH 连接 | 使用 -J(ProxyJump)轻松通过堡垒机/跳转主机 |
运行交互式命令时未使用 -t 标志 | 使用 ssh -t user@host "htop" 分配伪终端 |
通过不可信主机使用 ForwardAgent yes | 改用 ProxyJump——代理转发会将密钥暴露给已遭入侵的主机 |
设置 ControlPath 时未包含 %h、%p、%r | 包含全部三个标记,确保每个连接使用唯一套接字 |
| 全局禁用主机密钥检查 | 仅在可信的临时环境中使用 StrictHostKeyChecking no |
未使用 IdentitiesOnly yes | 防止向每台服务端提供所有已加载的密钥 |
安全检查清单
- 生成带有强密码短语的 Ed25519 密钥
- 在服务端设置
PasswordAuthentication no - 将
PermitRootLogin设置为prohibit-password或no - 在客户端配置中使用
IdentitiesOnly yes - 在
authorized_keys中使用command=和from=限制密钥 - 在高安全性环境中使用 FIDO2 硬件密钥(
ed25519-sk) - 在服务端安装
fail2ban以阻止暴力破解尝试 - 考虑使用 SSH 证书身份验证来管理服务器群
委派
- 发现服务器清单并测试连接:使用
ExploreAgent - 多主机部署或批量文件传输:使用
TaskAgent - 网络架构和堡垒机规划:使用
PlanAgent
参考资料
评论
支持 Markdown