ssh について
リモートマシンへの SSH 接続を確立・管理するスキルです。認証、鍵管理、コマンド実行、ファイル転送、設定、トラブルシューティングを扱い、Windows PowerShell の案内も含みます。
主な機能
- 01パスワードと鍵による認証
- 02SSH 鍵の生成と管理
- 03SSH 設定と既知ホストの管理
- 04リモートコマンドの実行
- 05SCP によるファイル転送
- 06接続トラブルの調査
活用シーン
- 01リモートマシンへの接続
- 02リモートホストでのコマンド実行
- 03ローカルとリモート間のファイル転送
- 04SSH 接続や鍵の権限問題の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ openhands/ extensions --skill sshインストール後、Claude Code で/sshを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.md.plugin/plugin.jsonreferences/windows.md詳細
SSH スキル
このスキルでは、リモートマシンへの SSH 接続の確立と管理ができます。
SSH 設定の作成、キーのパス、ssh-agent、権限に関する Windows PowerShell での同等の手順は、references/windows.md に記載されています。
機能
- パスワード認証または鍵ベース認証を使用して SSH 接続を確立する
- SSH キーペアを生成して管理する
- 接続を簡単にするために SSH を設定する
- リモートマシンでコマンドを実行する
- ローカルマシンとリモートマシンの間でファイルを転送する
- SSH 設定と known_hosts を管理する
認証方法
パスワード認証
ssh username@hostname
プロンプトが表示されたら、ユーザーにパスワードまたは秘密鍵を尋ねてください。
鍵ベース認証
新しい SSH キーペアを生成します。
ssh-keygen -t ed25519 -f ~/.ssh/key_name -C "comment" -N ""
公開鍵をリモートサーバーにコピーします。
ssh-copy-id -i ~/.ssh/key_name.pub username@hostname
秘密鍵を使って接続します。
ssh -i ~/.ssh/key_name username@hostname
SSH 設定
接続を簡単にするため、SSH 設定ファイルを作成または編集します。
mkdir -p ~/.ssh
cat > ~/.ssh/config << 'EOF'
Host alias
HostName hostname_or_ip
User username
IdentityFile ~/.ssh/key_name
Port 22
ServerAliveInterval 60
EOF
chmod 600 ~/.ssh/config
その後、エイリアスを使って接続します。
ssh alias
よく使う SSH オプション
-p PORT:特定のポートに接続します-X:X11 転送を有効にします-L local_port:remote_host:remote_port:ローカルポート転送を設定します-R remote_port:local_host:local_port:リモートポート転送を設定します-N:リモートコマンドを実行しません(ポート転送に便利です)-f:バックグラウンドで実行します-v:詳細モード(vを追加すると、さらに詳細な出力になります)
SCP によるファイル転送
リモートサーバーにファイルをコピーします。
scp /path/to/local/file username@hostname:/path/to/remote/directory/
リモートサーバーからファイルをコピーします。
scp username@hostname:/path/to/remote/file /path/to/local/directory/
ディレクトリを再帰的にコピーします。
scp -r /path/to/local/directory username@hostname:/path/to/remote/directory/
SSH エージェント
SSH エージェントを起動します。
eval "$(ssh-agent -s)"
エージェントに鍵を追加します。
ssh-add ~/.ssh/key_name
トラブルシューティング
- リモートの SSH サービスの状態を確認します:
systemctl status sshd - SSH ポートが開いていることを確認します:
nc -zv hostname 22 - 接続の問題をデバッグします:
ssh -vvv username@hostname - 権限を確認します:SSH 秘密鍵の権限は 600 にしてください(
chmod 600 ~/.ssh/key_name) - known_hosts を確認します:ホスト鍵が変更された場合は、
ssh-keygen -R hostnameで古いエントリを削除します
SSH 鍵の安全な管理
適切な権限によるローカル保存
最も基本的な方法は、ファイルの権限を適切に設定することです。
# Set correct permissions for private keys
chmod 600 ~/.ssh/id_ed25519
# Set correct permissions for public keys
chmod 644 ~/.ssh/id_ed25519.pub
# Set correct permissions for SSH directory
chmod 700 ~/.ssh
コメント
Markdown 対応