リモート収集向けに SSH アクセスを設定

リモート Linux* システムでデータを収集するには、パスワードなしの SSH 接続が必要です。

サンプリング・ドライバーをロードして、特定のパフォーマンス・メトリックを収集するには root 接続が必要です。root 権限でシステムを設定し、必要であれば、非 root ユーザー向けのパスワードなしの SSH アクセスを構成します。例えば、ターゲットシステムでのサンプリング・ドライバーのビルドとロードには root アクセスを使用し、非 root ユーザーとしてシステムに接続して解析を実行します。サンプリング・ドライバーを使用しないでアクセスを設定すると、ドライバーを使用しないイベントベース・サンプリングを使用できます。

パスワードなしの SSH アクセスは以下の方法で有効にします。

インテル® VTune™ プロファイラー 2019 Update 5 以前のバージョンでは、パスワードなしの SSH 設定が異なります。詳細については、こちらの記事 (英語) を参照してください。

Windows* から Linux* へのパスワードなしの SSH 接続を有効にする

Windows* から Linux* のリモート解析を行う場合、インテル® VTune™ プロファイラーは公開鍵 ID に基づいてパスワードなしの接続を自動的に設定します。

  1. インテル® VTune™ プロファイラーのプロジェクトを作成します。

  2. [解析の設定] ウィンドウで、[どこを] ペインで、[リモート Linux* (SSH)] ターゲットシステムを選択します。

  3. [SSH の対象] フィールドでリモートシステムを user@target 形式 (例: root@172.16.254.1) で指定します。

    インテル® VTune™ プロファイラーは SSH 接続を検証して、検証に失敗するとパスワードなしのアクセスを有効にするのに必要な公開/秘密鍵を生成し、インタラクティブなターミナルウィンドウに結果を出力します。

  4. 公開/秘密鍵が生成されると、任意のキーを押して資格情報を入力し、インテル® VTune™ プロファイラーに公開/秘密鍵を自動的にコピーして適用させます。

    自動で行わない場合は、CTRL + C を押します。この場合、生成された公開/秘密鍵をターミナルウィンドウで指定されたパスからターゲットシステムの ~/.ssh/authorized_keys に手動で追加する必要があります。

    インテル® VTune™ プロファイラーは資格情報をパスワードなしのアクセスを有効にするため一度だけ使用して、保存しません。

鍵が適用されると、ターミナルウィンドウが閉じて、プロジェクトの設定と解析に進むことができます。以降のすべてのセッションでは、指定されたシステムへのリモート接続の資格情報は求められません。

パスワードなしの SSH アクセスを設定 (Linux*/macOS* から Linux* へ)

Linux* ターゲットシステムでのリモート収集には、ローカル Linux* や macOS* ホスト上で次のようにパスワードなしモードを設定します。

  1. 空のパスフレーズで鍵を生成します。

    host> ssh-keygen -t rsa

  2. 鍵をターゲットシステムにコピーします。

    host> ssh-copy-id user@target

    代わりに、ホストシステム上に ssh-copy-id が存在しない場合、次のコマンドを使用します。

    host> cat .ssh/id_rsa.pub | ssh user@target 'cat >> .ssh/authorized_keys'

  3. パスワードが要求されないことを確認します。次に例を示します。

    host> ssh user@target ls

考えられる問題

鍵がコピーされているのにインテル® VTune™ プロファイラーが SSH 経由でリモートシステムに接続できない場合、~/.ssh と home ディレクトリーのアクセス権限と SSH デーモン設定が適切に設定されていることを確認してください。

アクセス権限

~/.ssh と ~/.ssh/authorized_keys ディレクトリーのアクセス権限がオープンでないことを確認します。次のコマンドを使用します。

chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

SSH 設定

/etc/ssh/sshd_config ファイルが公開鍵認証向けに適切に設定されているか確認します。

このステップには管理者権限が必要です。

次のオプションが存在する場合、yes に設定されていることを確認してください。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

root 権限でリモート接続するには、次のオプションを設定します。

PermitRootLogin yes

設定を変更したら、ファイルを保存して、次のコマンドで SSH サービスを再起動します。

sudo service ssh restart
sudo service sshd restart (CentOS の場合)

関連情報