JetBrains Rider 2024.1 ヘルプ

SSH 経由でリモートアプリケーションをデバッグする

このチュートリアルでは、SSH トンネルを使用して、開発マシンとリモートホストの間に安全な接続を設定し、そこで実行されている Web アプリケーションをデバッグする方法を説明します。

リモートホストに SSH サーバーをセットアップする

リモートホストが実行しているオペレーティングシステムに応じて、リモートホストへの SSH アクセスを構成します。

リモートデバッグ用に JetBrains SSH サーバーをインストールして構成します。リモートホストで SSH を迅速かつ安全に開始し、ホストへのアクセスに使用できるアクセス資格情報を生成します。

  1. JetBrains SSH サーバーの実行可能ファイル 32 ビット Windows の場合(英語)または 64 ビット Windows の場合(英語)をダウンロードします。

  2. 実行可能ファイルを実行します。オプションで、-port 引数(たとえば、jetbrains_debugger_agent_20230319.24.0 -port=1234)を使用して目的のポートを指定できます。指定しない場合、ポートはランダムに選択されます。

  3. SSH が開始され、出力にアクセス資格情報 (ログイン、パスワード、ポート) が表示されます。

  4. ポートがアクセス可能であることを確認してください。

    • 開発マシンとリモートホストの両方が同じネットワーク内にある必要があります。

    • または、ファイアウォール / ポート転送は、ネットワークの外部からポートにアクセスできるように構成する必要があります

または、Windows 用の OpenSSH をインストールして構成することもできます。

リモートデバッグ用に JetBrains SSH サーバーをインストールして構成します。リモートホストで SSH を迅速かつ安全に開始し、ホストへのアクセスに使用できるアクセス資格情報を生成します。

  1. JetBrains SSH サーバーユーティリティ x64 ベースの macOS の場合(英語)または M1 ベースの macOS 用(英語)をダウンロードします。

  2. ユーティリティファイルを実行可能にします。例: ターミナルで chmod +x jetbrains_debugger_agent_20230319.24.0 を実行します。

  3. 実行可能ファイルを実行します。オプションで、-port 引数(たとえば、jetbrains_debugger_agent_20230319.24.0 -port=1234)を使用して目的のポートを指定できます。指定しない場合、ポートはランダムに選択されます。

  4. SSH が開始され、出力にアクセス資格情報 (ログイン、パスワード、ポート) が表示されます。

  5. ポートがアクセス可能であることを確認してください。

    • 開発マシンとリモートホストの両方が同じネットワーク内にある必要があります。

    • または、ファイアウォール / ポート転送は、ネットワークの外部からポートにアクセスできるように構成する必要があります

または、macOS ユーザーガイド: リモートコンピューターから Mac へのアクセスを許可する(英語)説明に従って、SSH を手動で構成します。

リモートデバッグ用に JetBrains SSH サーバーをインストールして構成します。リモートホストで SSH を迅速かつ安全に開始し、ホストへのアクセスに使用できるアクセス資格情報を生成します。

  1. JetBrains SSH サーバーユーティリティ x64 ベースの Linux の場合(英語)arm64 ベースの Linux 用(英語)arm32 ベースの Linux 用(英語)をダウンロードします。

  2. ユーティリティファイルを実行可能にします。例: ターミナルで chmod +x jetbrains_debugger_agent_20230319.24.0 を実行します。

  3. 実行可能ファイルを実行します。オプションで、-port 引数(たとえば、jetbrains_debugger_agent_20230319.24.0 -port=1234)を使用して目的のポートを指定できます。指定しない場合、ポートはランダムに選択されます。

  4. SSH が開始され、出力にアクセス資格情報 (ログイン、パスワード、ポート) が表示されます。

  5. ポートがアクセス可能であることを確認してください。

    • 開発マシンとリモートホストの両方が同じネットワーク内にある必要があります。

    • または、ファイアウォール / ポート転送は、ネットワークの外部からポートにアクセスできるように構成する必要があります

または、OpenSSH サーバー(英語)をインストールして構成します。

Web アプリケーションを作成する

Web アプリケーションがある場合は、そのまま続行できます。それ以外の場合は、サンプル ASP .NET MVC アプリケーションを作成できます。メインメニューからファイル | 新規を選択し、新規ソリューションウィザードを使用します。

Creating a new ASP.NET MVC application

リモートホストへの接続を構成する

リモートホストへの接続は、2 つのサブシステムによって使用されます。1 つは SFTP を介してアプリケーションをリモートでデプロイするため、もう 1 つは SSH を介してリモートデバッグセッションを確立するためです。

  1. Ctrl+Alt+S を押すか、メニューからファイル | 設定(Windows および Linux)または JetBrains Rider | 環境設定 (macOS) を選択します。

  2. ビルド、実行、デプロイ | デプロイに移動します。

  3. 追加 Add Insert をクリックし、SFTP を選択して、リモートホストの識別に役立つ名前を指定します。

  4. リモートホストのアドレスとアクセス資格情報、およびルートパス(アプリケーションがデプロイされるリモートホスト上のパス)を指定します。このディレクトリがリモートホストに存在することを確認してください。Web ブラウザーアクセスに使用する Web サーバーの URL は、自動的に計算されます。

    SSH remote debugging. Deployment settings
  5. 「設定 / 環境設定」ダイアログを閉じずに、ツール | SSH 構成に進みます。

  6. 追加 Add Insert をクリックして、リモートホストの SSH アクセス資格情報を指定します。多くの場合、これらは SFTP 資格情報と同じです。

    SSH remote debugging. Remote debug settings
  7. 保存をクリックして設定を保存し、ダイアログを閉じます。

アプリケーションをリモートホストにデプロイする

JetBrains Rider を使用してアプリケーションをデプロイするには、実行構成を作成して使用する必要があります。

  1. 以下のいずれかの方法で実行 / デバッグ構成ダイアログを開きます。

    • メインメニューから実行 | 実行構成の編集を選択します。

    • ナビゲーションバーが表示された状態(表示 | 外観 | ナビゲーションバー)で、実行 / デバッグ構成セレクターから実行構成の編集を選択します。

    • Alt+Shift+F10 を押してから、0 を押します。

  2. 実行 / デバッグ構成ダイアログで、新規構成の追加 Add New Configuration Alt+Insert をクリックし、カスタムサーバーへの公開構成タイプを選択して、将来この構成を識別するのに役立つ名前を指定します。

  3. 必要に応じて、構成の共通設定を調整し、タスクを起動する前に構成します。

  4. アプリケーションに対応するプロジェクトが正しく選択されていることを確認してください。

  5. リモートサーバーフィールドで、JetBrains Rider 設定 Ctrl+Alt+Sビルド、実行、デプロイ | デプロイページで前のステップで作成した SFTP アクセスプロファイルを選択します。

  6. ターゲットマシンによって異なる可能性のある他のオプションを指定します。

    SSH remote debugging. Deployment configuration
  7. OK をクリックして構成を保存し、ダイアログを閉じます。

これで、アプリケーションの準備ができたらすぐに、またはアプリケーションが変更されるたびに、アプリケーションをリモートホストに公開できるようになります。Web アプリケーションにボイラープレートプロジェクトテンプレートを使用したため、公開する準備ができています。

SSH remote debugging. Deployment run

アプリケーションがデプロイされると、リモートホストで実行できます。

  1. メニューからツール | SSH セッションの開始を選択し、SFTP アクセスプロファイルを選択します。

    SSH remote debugging. Start SSH session
  2. ターミナルウィンドウに新しいセッションが表示されます。アプリケーションのルートフォルダーが WebApplication であると仮定して、次のコマンドを入力します。

    • cd /[application path]/WebApplication を使用して、アプリケーションのルートフォルダーに移動します。

    • chmod +x ./WebApplication 必要に応じて実行可能ビットを追加します。

    • ASPNETCORE_URLS=http://0.0.0.0:5000 ./WebApplication はアプリケーションを実行します

    SSH remote debugging. Terminal

リモートホストでアプリケーションをデバッグする

  1. アプリケーションで、ページの 1 つにアクセスするときにヒットするブレークポイントを設定します。チュートリアルの最初に新しいサンプルプロジェクトを作成した場合は、HomeController.cs:28 にブレークポイントを設定できます。

    SSH remote debugging. Breakpoint
  2. メニューから実行 | リモートプロセスに接続するを選択し、リモートホストとアプリケーションを選択します。

    SSH remote debugging. Attach

    デバッガーが正常にアタッチされると、ブレークポイントアイコンに緑色のチェックマーク breakpoint_valid.png がマークされます。

  3. デバッガーが接続された状態でアプリケーションが実行されている場合、ブラウザー http://[remote host name]:5000 でアプリケーション URL を開き、ブレークポイントが設定されているページにアクセスしてみます。

    SSH remote debugging. Opening the application in the browser

アプリケーションの実行がブレークポイントに達するとすぐに停止し、デバッグできるようになります。

SSH remote debugging. Debugging the application

リモートデバッグツールのオプションのデプロイ

デバッガーは、ターゲットアプリケーションが実行されているリモートホストに接続するときに、リモートホストにデプロイする必要があるリモートデバッグツール(dotnet 実行可能ファイル、Rider エージェント、それらの依存関係)に依存します。

リモートデバッグツールが見つからない場合、デバッガーは、アプリケーションに初めて接続するときに、サイレントにデプロイします。

ただし、接続ごとにターゲット環境が更新されるシナリオがあります。たとえば、Docker コンテナー内のアプリケーションをデバッグし、アプリケーションを再構築するときに Docker イメージ全体が再構築される場合です。

このような場合、新しいデバッグセッションはそれぞれ、リモートデバッグツールをデプロイすることから開始する必要がありますが、これは時間がかかる場合があります。

この起動遅延を回避するために、デバッガーに接続する前に、リモートデバッグツールをターゲットホストに手動または自動でデプロイできます。

  1. 次のいずれかのリンクを使用して、Windows 用のリモートデバッグツールをダウンロードします。

  2. ツールをターゲットマシンの RiderRemoteDebugger ディレクトリまたは Docker イメージに解凍します。例: %LOCALAPPDATA%\JetBrains\RiderRemoteDebugger\2022.1.1

  1. 次のリンクのいずれかを使用して、macOS 用のリモートデバッグツールをダウンロードします。

  2. ツールをターゲットマシンの RiderRemoteDebugger ディレクトリまたは Docker イメージに解凍します。例: /.local/share/JetBrains/RiderRemoteDebugger/2022.1.1

  3. 抽出されたすべてのファイルに次のコマンドを適用します。

    xattr -d com.apple.quarantine FILE_NAME
  1. 次のリンクのいずれかを使用して、Linux 用のリモートデバッグツールをダウンロードします。

  2. ツールをターゲットマシンの RiderRemoteDebugger ディレクトリまたは Docker イメージに解凍します。例: ~/.local/share/JetBrains/RiderRemoteDebugger/2022.1.1

関連ページ:

実行 / デバッグ構成

JetBrains Rider は、実行 / デバッグ構成を使用して、コードを実行、デバッグ、デプロイ、テストします。各構成は、何を実行し、どのパラメーターと環境を使用するかを定義する、名前付きのスタートアッププロパティのセットです。実行 / デバッグ構成には 2 つのタイプがあります。一時的 — エディターから .NET 静的メソッドを実行 / デバッグするたびに作成されます。永続的 — テンプレートから明示的に作成されるか、一時的な構成を保存することによって作成されます。永続的な構成は、削除するま...

ユーザーインターフェース

JetBrains Rider でソリューションを開くと、デフォルトのユーザーインターフェースは次のようになります。プラグインのセットと構成設定によっては、IDE の外観と動作が異なる場合があります。ナビゲーションバー:フォーカス: 表示 / 非表示: ナビゲーションバーはソリューションエクスプローラーの代わりとなるもので、ソリューションの構造を確認したり、特定のファイルを開いたり、現在のファイル内の特定のコード要素に移動したりできます。メインウィンドウの下部にあるステータスバーにあります。ナビゲ...

実行 / デバッグ構成ダイアログ

このダイアログを使用して、実行 / デバッグ構成を作成、編集、調整、削除したり、新しく作成されたすべての実行 / デバッグ構成に適用されるデフォルトのテンプレートを構成したりします。既存の実行 / デバッグ構成は、構成タイプごとにグループ化されています。新しい構成を作成するためのテンプレートは編集可能であり、ダイアログの左側のペインにある構成テンプレートの編集…リンクから利用できます。共通設定:実行構成を編集するとき(ただし実行構成テンプレートは編集しないとき)、次のオプションを指定できます。...

マルチスレッドアプリケーションのデバッグ

マルチスレッドアプリケーションは、一度に複数のスレッドを追跡する必要があるため、デバッグは常に困難です。さらに、マルチスレッドアプリケーションでは、不均一なワークロード分散、ロック競合、シリアライズされた実行などの新しいタイプのバグやパフォーマンスの問題が発生します。デバッグセッションのステップ実行から得られるシーケンシャルフローのような錯覚は、マルチスレッドアプリのデバッグ中は役に立たず、誤解を招く可能性があります。同時実行のバグとなる可能性のある問題を調査する場合は、逐次ステップではなくブレ...