ssh-remote について
ssh-remoteは、SSHによるリモートシステム管理とファイル転送のためのリファレンススキルです。接続、トンネル、鍵管理、セキュリティ設定の手引きを開発者や運用担当者向けにまとめています。
主な機能
- 01SSH接続と設定パターン
- 02rsync、scp、sftpによる転送ガイド
- 03ローカル、リモート、SOCKSトンネル
- 04踏み台ホストと接続の再利用
- 05鍵管理とセキュリティ強化チェックリスト
活用シーン
- 01リモートサーバーへの接続と管理
- 02ファイル転送やディレクトリ同期
- 03SSHトンネル経由のポート転送
- 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 にあり、ホストごとの設定、ID 管理、接続の再利用に対応しています。
使用する場面: リモートサーバーの管理、安全なファイル転送、ポートフォワーディング、踏み台ホスト経由の接続、自動デプロイ、SOCKS プロキシ。
使用しない場面: WAN 経由の大容量データ転送(Globus などを使用)、GUI 中心のリモートデスクトップ(VNC/RDP を使用)、コンテナオーケストレーション(kubectl/docker CLI を使用)。
クイックリファレンス
| パターン | コマンド/ディレクティブ | 主なポイント |
|---|---|---|
| 基本の接続 | ssh user@host | デフォルト以外のポートには -p PORT を追加 |
| ID ファイル | 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 以降が必要 |
| エージェント | 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 | タブ補完、ディレクトリ移動 |
| 高帯域幅の 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を使用します。エージェント転送を有効にすると、侵害されたホストにキーがさらされます |
%h、%p、%r を指定せずに ControlPath を設定する | すべての接続でソケットが一意になるよう、3つのトークンをすべて含めます |
| ホストキーのチェックを全体的に無効にする | StrictHostKeyChecking no は、信頼できる一時的な環境でのみ使用します |
IdentitiesOnly yes を使用しない | 読み込まれたすべてのキーがすべてのサーバーに提示されるのを防ぎます |
セキュリティチェックリスト
- 強力なパスフレーズを設定してEd25519キーを生成します
- サーバーで
PasswordAuthentication noを設定します PermitRootLogin prohibit-passwordまたはnoを設定します- クライアント設定で
IdentitiesOnly yesを使用します authorized_keysでcommand=とfrom=を使ってキーを制限します- 高いセキュリティが求められる環境では、FIDO2ハードウェアキー(
ed25519-sk)を使用します - ブルートフォース攻撃をブロックするため、サーバーに
fail2banをインストールします - サーバー群の管理にはSSH証明書認証を検討します
委任
- サーバーインベントリの検出と接続テスト:
Exploreエージェントを使用します - 複数ホストへのデプロイまたは一括ファイル転送:
Taskエージェントを使用します - ネットワークアーキテクチャと踏み台ホストの計画:
Planエージェントを使用します
参考資料
コメント
Markdown 対応