mcpField
S
ssh-key-management

ssh-key-management

github.com/acquiaクラウド・DevOps10122 回インストール今日更新
リポジトリ

ssh-key-management について

Acquia Cloud の SSH キーを管理するスキルです。IDE、サーバー、リポジトリ、CI/CD のアクセス設定に向け、キーの作成、登録、確認、一覧表示、削除を扱います。

主な機能

  1. 01SSH キーの作成とアップロード
  2. 02キーとフィンガープリントの一覧
  3. 03登録済みキーの確認と削除
  4. 04IDE の SSH アクセス設定
  5. 05CI/CD 用キーの準備

活用シーン

  1. 01Acquia IDE の SSH アクセス設定
  2. 02既存の公開鍵の登録
  3. 03アカウント内の古いキーの削除
  4. 04CI/CD 用 SSH 認証の準備

インストール

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

$npx skills add https://github.com/acquia/acquia-skills --skill ssh-key-management

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

詳細

SSH キーの管理

以下の場合に使用します:

  • Acquia Cloud 用の SSH キーを追加または生成する場合
  • SSH キーを一覧表示または削除する場合
  • IDE や CI/CD パイプライン用に SSH アクセスを設定する場合

SSH キーを使うと、パスワードを入力せずに Acquia Cloud のリソースに安全に認証できます。


SSH キーを使う理由

SSH キーを使うと、次のことができます:

  • パスワードを入力せずに IDE に安全にアクセスする
  • リポジトリにコードをプッシュする
  • サーバー上でリモートコマンドを実行する
  • スクリプトや CI/CD パイプラインでデプロイを自動化する

SSH キーを一覧表示する

すべての SSH キーを表示する
acli ssh-key:list

出力:

SSH Keys for your account:
  [0] My Laptop (generated 2024-01-15)
      Fingerprint: ab:cd:ef:12:34:56:78:90
  [1] Work Desktop (generated 2024-02-01)
      Fingerprint: 11:22:33:44:55:66:77:88
IDE ごとにキーを一覧表示する
acli ide:ssh-key:list

新しい SSH キーを生成する

対話形式で SSH キーを作成する
acli ssh-key:create

これにより、次の処理が行われます:

  1. ラベルの入力を求められます(例:「My Laptop」、「CI Server」)
  2. 公開鍵と秘密鍵のペアが生成されます
  3. 公開鍵が Acquia アカウントに保存されます
  4. 秘密鍵がローカルに保存されます(通常は ~/.ssh/id_rsa)

例:

$ acli ssh-key:create
? Enter a label for this SSH key: My Laptop
✓ SSH key created!
  Public key added to your account.
  Private key saved to: ~/.ssh/id_rsa
  Fingerprint: ab:cd:ef:12:34:56:78:90

注意: ラベルの入力は、キーが生成され、Acquia アカウントに永続的に追加される直前の最後の手順です。Enter キーを押す前に、ラベルが正しいことを確認してください。


既存の SSH キーをアップロードする

すでに SSH キーがある場合は、再生成せずにアップロードできます:

acli ssh-key:upload --filepath ~/.ssh/id_rsa.pub --label "Existing Key"

または、対話形式で実行します:

acli ssh-key:upload

キー ファイルの選択とラベルの入力を求められます。

伝播の完了を待たずに進める

デフォルトでは、acli はキーがすべてのサーバーに伝播するまで待機します。次の方法で待機を省略できます:

acli ssh-key:upload --filepath ~/.ssh/id_rsa.pub --label "My Key" --no-wait

1 つの手順で作成してアップロードする

ローカルで新しいキーを生成し、1 つのコマンドで Cloud Platform にアップロードします:

acli ssh-key:create-upload

オプション:

acli ssh-key:create-upload \
  --filename=my_key \
  --password="" \
  --label="My New Key" \
  --no-wait

SSH キーを確認する

フィンガープリントを指定して、特定のキーの詳細を取得します:

acli ssh-key:info --fingerprint="ab:cd:ef:12:34:56:78:90"

削除する前に、どのキーが登録されているかを確認するのに便利です。


SSH キーを削除する

アカウントからキーを削除する
acli ssh-key:delete

削除するキーを選択するよう求められます:

? Select the SSH key to delete: [0] My Laptop
? Delete "My Laptop"? (yes/no)
✓ SSH key deleted.
非対話形式で削除する
acli ssh-key:delete --public-key "ab:cd:ef:12:34:56:78:90"

IDE で SSH キーを使用する

IDE に SSH 接続する

SSH キーを設定したら、IDE に接続できます:

# Note: Use the IDE ides-hostname, not the web URL
ssh -i ~/.ssh/id_rsa [email protected]
IDE で SSH 経由の git を設定する

パスワード認証が必要な HTTPS を使う代わりに、SSH を使います:

# Configure your IDE's Git to use SSH
git remote set-url origin [email protected]:yourorg/yourrepo.git

# Now push without entering a password
git push origin main
他のシステム用に公開鍵をエクスポートする
# Show your public key
cat ~/.ssh/id_rsa.pub

# Copy it to GitLab, GitHub, internal systems, etc.

ベストプラクティス

1. デバイスごとにキーを 1 つ作成する

マシンごとに別々のキーを作成します:

# Personal laptop
acli ssh-key:create --label "Personal MacBook"

# Work desktop
acli ssh-key:create --label "Work Desktop"

# CI/CD server
acli ssh-key:create --label "Jenkins CI Server"
2. 分かりやすいラベルを使う
# ✓ Good
acli ssh-key:create --label "2024 MacBook Pro - Home"
acli ssh-key:create --label "GitHub Actions CI"

# ✗ Bad
acli ssh-key:create --label "Key 1"
3. 古いキーを無効にする

使わなくなったキーを削除します:

acli ssh-key:delete
4. 秘密鍵を保護する
# Permissions should be 600 (read/write for owner only)
chmod 600 ~/.ssh/id_rsa
5. SSH エージェントを使う

macOS:

# Add to ~/.ssh/config
Host *
  AddKeysToAgent yes
  UseKeychain yes

Linux:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

応用:CI/CD 用の SSH

CI/CD パイプライン用のキーを生成する
acli ssh-key:create --label "GitHub Actions CI"

次に:

  1. 秘密鍵をコピーします
  2. CI/CD プロバイダーのシークレットに追加します(GitHub Secrets、GitLab CI/CD Variables など)
  3. CI スクリプトで使用します

GitHub Actions の例:

- name: Deploy to Acquia
  uses: actions/checkout@v2
  env:
    SSH_KEY: ${{ secrets.ACQUIA_SSH_KEY }}
  run: |
    mkdir -p ~/.ssh
    echo "$SSH_KEY" > ~/.ssh/id_rsa
    chmod 600 ~/.ssh/id_rsa
    acli api:environments:code-switch <env-id> main

MEO (V3) サブスクリプション: api:environments:code-switch の代わりに acli api:v3:environments:create-deployment <environmentId> true refs/heads/main を使用してください(MEO Deployments を参照)。


関連トピック

コメント