ssh について
SSHによるリモートアクセスを扱うコマンドライン向けリファレンススキルです。接続、鍵管理、トンネル、ファイル転送に加え、踏み台ホストや設定、安全対策を説明します。
主な機能
- 01リモートホストへの接続とコマンド実行
- 02SSH鍵の生成、配置、利用
- 03踏み台ホストとポート転送の設定
- 04scpとrsyncによるファイル転送
- 05SSH設定と接続多重化
活用シーン
- 01踏み台ホスト経由で内部サーバーへ接続
- 02リモートサービスのポートをローカルへ転送
- 03ローカルとリモート間でファイルをコピーまたは同期
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dicklesworthstone/ agent_flywheel_clawdbot_skills_and_integrations --skill sshインストール後、Claude Code で/sshを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/COMMANDS.mdKEYS.mdTUNNELS.md詳細
SSH — セキュアなリモートアクセス
主な機能: セキュアシェル接続、鍵管理、トンネリング、ファイル転送。
クイックスタート
# 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 エージェント
# 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 対応