技能简介
SSH Essentials 提供完整的 SSH 命令参考,覆盖远程服务器连接、密钥生命周期管理、本地与远程端口转发、动态 SOCKS 代理,以及 SCP/SFTP 文件传输等核心场景。
业务背景
运维与开发人员日常需频繁登录服务器、传输文件或访问内网资源。SSH远程安全连接提供标准化的密钥管理与端口隧道能力,帮助团队建立加密会话、简化多主机配置,在保障通信安全的同时提升操作效率,降低凭证泄露与未授权访问风险。
落地案例:某开发团队管理数十台云服务器,通过SSH config为主机创建别名,一键免密登录;利用本地端口转发将数据库管理界面映射到本地浏览器,避免直接暴露公网;配合SCP完成代码包批量分发。密钥统一托管于ssh-agent,私钥权限严格设为600,杜绝凭证外泄隐患。
能做什么
- 建立安全的远程服务器会话,支持指定端口、密钥和命令执行
- 生成 RSA/ED25519 密钥对,管理 authorized_keys 与 ssh-agent
- 配置本地端口转发访问内网服务,或反向暴露本地服务到公网
- 搭建动态 SOCKS5 代理实现流量转发
- 通过 SCP 或 SFTP 完成加密的文件上传下载
- 使用 ~/.ssh/config 简化多主机连接配置
使用说明
安装要求
系统需预装 OpenSSH 客户端。Linux/macOS 通常内置;Windows 10+ 可通过「设置 → 应用 → 可选功能 → OpenSSH 客户端」启用,或使用 Git Bash/WSL。
基础连接
# 标准连接
ssh user@hostname
# 指定端口与密钥
ssh -p 2222 -i ~/.ssh/id_rsa user@hostname
# 执行单条命令后断开
ssh user@hostname 'df -h'
密钥管理
# 生成 ED25519 密钥(推荐)
ssh-keygen -t ed25519 -C "your_email@example.com"
# 复制公钥到服务器实现免密登录
ssh-copy-id user@hostname
# 启动 agent 并添加密钥
eval $(ssh-agent) && ssh-add ~/.ssh/id_ed25519
端口转发
# 本地转发:将远程80端口映射到本地8080
ssh -L 8080:localhost:80 user@hostname
# 动态 SOCKS 代理
ssh -D 1080 user@hostname
# 后台保持隧道
ssh -fN -o ServerAliveInterval=60 -L 3306:localhost:3306 user@hostname
文件传输
# SCP 递归复制目录
scp -r ./localdir user@hostname:/remotedir/
# SFTP 交互式会话
sftp user@hostname
sftp> put localfile.txt
sftp> get remotefile.txt
配置文件
编辑 ~/.ssh/config 创建主机别名:
Host prod
HostName 192.168.1.100
User deploy
Port 2222
IdentityFile ~/.ssh/id_prod
ForwardAgent yes
之后可直接使用 ssh prod 连接。
输入与输出
见下方输入与输出表格。
| 项目 | 内容 |
|---|---|
| 输入 | 目标主机地址、端口、用户名、认证凭据(密钥或密码)、转发端口参数、文件路径 |
| 输出 | 加密终端会话、端口隧道、SOCKS代理通道、文件传输结果、密钥管理状态 |
| 适用人群 | 运维工程师、后端开发者、DevOps人员、多服务器管理员、需穿透内网的技术人员 |
| 不包含 | SSH服务端配置、审计日志分析、企业CA证书体系、自动化运维编排工具 |
风险提示
- 私钥文件权限应为 600,避免被其他用户读取导致未授权访问
- 生产环境禁止使用无密码密钥(-N “”),除非配合硬件令牌或受限账户
- 开启 X11 转发(-X/-Y)可能引入图形界面攻击面,敏感服务器建议关闭
- 远程端口转发(-R)将本地服务暴露到公网,需配合防火墙限制来源 IP
- 首次连接主机时需验证指纹,防止中间人攻击;禁止习惯性输入 yes 跳过
- 跳板机(ProxyJump)配置需确保堡垒机安全,避免成为横向移动入口
来源信息
原始链接:https://github.com/openclaw/skills/tree/main/skills/arnarsson/ssh-essentials/SKILL.md
来源类型:GitHub 技能仓库
常见问题
Q1:SSH远程安全连接 适合哪些场景?
A:适合需要「SSH Essentials 提供完整的 SSH 命令参考,覆盖远程服务」的场景,尤其是希望快速验证并落地的团队与个人。
Q2:第一次使用应该先做什么?
A:先明确目标任务,再按照页面中的“能做什么”和“使用说明”完成最小可行流程。
Q3:如何判断是否值得长期使用?
A:建议连续使用 1-2 周,对比效率、稳定性和协作成本,再决定是否纳入长期工具栈。
