mcpField
S
ssh

ssh

github.com/openhandsクラウド・DevOps1751.2k 回インストール今日更新
リポジトリ

ssh について

リモートマシンへの SSH 接続を確立・管理するスキルです。認証、鍵管理、コマンド実行、ファイル転送、設定、トラブルシューティングを扱い、Windows PowerShell の案内も含みます。

主な機能

  1. 01パスワードと鍵による認証
  2. 02SSH 鍵の生成と管理
  3. 03SSH 設定と既知ホストの管理
  4. 04リモートコマンドの実行
  5. 05SCP によるファイル転送
  6. 06接続トラブルの調査

活用シーン

  1. 01リモートマシンへの接続
  2. 02リモートホストでのコマンド実行
  3. 03ローカルとリモート間のファイル転送
  4. 04SSH 接続や鍵の権限問題の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/openhands/extensions --skill ssh

インストール後、Claude Code で/sshを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
.plugin/
plugin.json
references/
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

コメント