mcpField
S
ssh

ssh

github.com/dicklesworthstone云与 DevOps73704 次安装8 周前更新
代码仓库

关于 ssh

面向使用 SSH 进行远程访问的命令行参考技能,覆盖连接、密钥管理、隧道和文件传输。内容还包括跳板机、SSH 配置及常见安全实践。

主要功能

  1. 01通过 SSH 连接远程主机并执行命令
  2. 02生成、部署和使用 SSH 密钥
  3. 03配置跳板机与端口转发
  4. 04使用 scp 和 rsync 传输文件
  5. 05设置 SSH 配置与连接复用

适用场景

  1. 01通过跳板机访问内网服务器
  2. 02将远程服务端口转发到本地
  3. 03在本地与远程主机间复制或同步文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations --skill ssh

安装后在 Claude Code 中输入/ssh确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
COMMANDS.md
KEYS.md
TUNNELS.md

详细介绍

SSH — 安全远程访问

核心能力: 安全 Shell 连接、密钥管理、隧道和文件传输。


快速开始

# Connect to server
ssh user@hostname

# Connect with specific key
ssh -i ~/.ssh/my_key user@hostname

# Run remote command
ssh user@host "cd /app && git status"

# Copy file to remote
scp local.txt user@host:/remote/path/

# Sync directory (preferred over scp)
rsync -avzP ./local/ user@host:/remote/

精确提示词 — 常见工作流

通过跳板主机连接
# Single jump (bastion)
ssh -J jumphost user@internal-server

# Multiple jumps
ssh -J jump1,jump2 user@internal-server
本地端口转发(在本地访问远程服务)
# Access remote:80 via localhost:8080
ssh -L 8080:localhost:80 user@host

# Access db-server:5432 via localhost:5432 through jumphost
ssh -L 5432:db-server:5432 user@jumphost
生成并部署密钥
# Generate Ed25519 key (recommended)
ssh-keygen -t ed25519 -C "[email protected]"

# Copy public key to server
ssh-copy-id user@host

基本命令

任务命令
连接ssh user@host
指定端口连接ssh -p 2222 user@host
使用密钥连接ssh -i ~/.ssh/key user@host
运行远程命令ssh user@host "command"
交互式远程会话ssh -t user@host "htop"
复制到远程主机scp file.txt user@host:/path/
从远程主机复制scp user@host:/path/file.txt ./
同步到远程主机rsync -avzP ./local/ user@host:/remote/
本地转发ssh -L local:remote:port user@host
远程转发ssh -R remote:local:port user@host
SOCKS 代理ssh -D 1080 user@host
跳板主机ssh -J bastion user@internal
生成密钥ssh-keygen -t ed25519
将密钥复制到服务器ssh-copy-id user@host
调试连接ssh -vvv user@host

SSH 配置

位置:~/.ssh/config

Host myserver
    HostName 192.168.1.100
    User deploy
    Port 22
    IdentityFile ~/.ssh/myserver_key
    ForwardAgent yes

Host internal
    HostName 10.0.0.50
    User deploy
    ProxyJump bastion

之后只需使用:ssh myserver 即可连接

连接复用(更快地重新连接)
Host *
    ControlMaster auto
    ControlPath ~/.ssh/sockets/%r@%h-%p
    ControlPersist 600
mkdir -p ~/.ssh/sockets

SSH Agent

# Start agent
eval "$(ssh-agent -s)"

# Add key
ssh-add ~/.ssh/id_ed25519

# Add with macOS keychain
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

# List loaded keys
ssh-add -l

安全提示

  • 使用 Ed25519 密钥(比 RSA 更快、更安全)
  • 在服务器上设置 PasswordAuthentication no
  • 使用密码短语加密密钥
  • 使用 ssh-agent,避免反复输入密码短语
  • 使用 authorized_keys 中的 command= 限制密钥用途

AGENTS.md 说明

将以下内容复制到项目的 AGENTS.md 中:

### SSH Access

SSH is configured for these servers:

- **Production:** `ssh prod` (via ~/.ssh/config)
- **Staging:** `ssh staging`

Common operations:

\`\`\`bash
ssh prod "cd /app && git status"      # Check deploy status
rsync -avzP ./dist/ prod:/app/dist/   # Sync files
ssh -L 5432:localhost:5432 prod       # DB tunnel
\`\`\`

Keys: `~/.ssh/id_ed25519` (add with `ssh-add`)

参考资料

主题参考资料
完整命令参考COMMANDS.md
端口转发详情TUNNELS.md
密钥管理KEYS.md

评论

支持 Markdown