mcpField
S
ssh

ssh

github.com/dicklesworthstoneクラウド・DevOps73704 回インストール8 週間前に更新
リポジトリ

ssh について

SSHによるリモートアクセスを扱うコマンドライン向けリファレンススキルです。接続、鍵管理、トンネル、ファイル転送に加え、踏み台ホストや設定、安全対策を説明します。

主な機能

  1. 01リモートホストへの接続とコマンド実行
  2. 02SSH鍵の生成、配置、利用
  3. 03踏み台ホストとポート転送の設定
  4. 04scpとrsyncによるファイル転送
  5. 05SSH設定と接続多重化

活用シーン

  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 — セキュアなリモートアクセス

主な機能: セキュアシェル接続、鍵管理、トンネリング、ファイル転送。


クイックスタート

# 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

コメント