SSH 経由でリモートアプリケーションをデバッグする
このチュートリアルでは、SSH トンネルを使用して、開発マシンとリモートホストの間に安全な接続を設定し、そこで実行されている Web アプリケーションをデバッグする方法を説明します。
リモートホストに SSH サーバーをセットアップする
リモートホストが実行しているオペレーティングシステムに応じて、リモートホストへの SSH アクセスを構成します。
リモートデバッグのために JetBrains SSH サーバーをインストールして構成してください。これにより、リモートホスト上で SSH を迅速かつ安全に起動し、ホストへアクセスするための資格情報を生成します。
JetBrains SSH サーバーの実行可能ファイル 32 ビット Windows の場合(英語)または 64 ビット Windows の場合(英語)をダウンロードします。
実行可能ファイルを実行してください。 必要に応じて、
-port引数で希望するポートを指定できます(例:jetbrains_debugger_agent_20240726.40.0 -port=1234)。指定しない場合はランダムに選択されます。SSH が開始され、出力にアクセス資格情報 (ログイン、パスワード、ポート) が表示されます。
ポートがアクセス可能であることを確認してください。
開発マシンとリモートホストの両方が同じネットワーク内にある必要があります。
または、ファイアウォール / ポート転送は、ネットワークの外部からポートにアクセスできるように構成する必要があります
または、 Windows 用の OpenSSH をインストールして構成することもできます。
リモートデバッグのために JetBrains SSH サーバーをインストールして構成してください。これにより、リモートホスト上で SSH を迅速かつ安全に起動し、ホストへアクセスするための資格情報を生成します。
JetBrains SSH サーバーユーティリティ x64 ベースの macOS の場合(英語)または M1 ベースの macOS 用(英語)をダウンロードします。
ユーティリティファイルを実行可能にします。 例: ターミナルで
chmod +x jetbrains_debugger_agent_20240726.40.0を実行します。実行可能ファイルを実行してください。 必要に応じて、
-port引数で希望するポートを指定できます(例:jetbrains_debugger_agent_20240726.40.0 -port=1234)。指定しない場合はランダムに選択されます。SSH が開始され、出力にアクセス資格情報 (ログイン、パスワード、ポート) が表示されます。
ポートがアクセス可能であることを確認してください。
開発マシンとリモートホストの両方が同じネットワーク内にある必要があります。
または、ファイアウォール / ポート転送は、ネットワークの外部からポートにアクセスできるように構成する必要があります
または、macOS ユーザーガイド: リモートコンピューターから Mac へのアクセスを許可する(英語)説明に従って、SSH を手動で構成します。
リモートデバッグのために JetBrains SSH サーバーをインストールして構成してください。これにより、リモートホスト上で SSH を迅速かつ安全に起動し、ホストへアクセスするための資格情報を生成します。
JetBrains SSH サーバーユーティリティ x64 ベースの Linux の場合(英語)、 arm64 ベースの Linux 用(英語)、 ARM32 ベースの Linux 用(英語)をダウンロードします。
ユーティリティファイルを実行可能にします。 例: ターミナルで
chmod +x jetbrains_debugger_agent_20240726.40.0を実行します。実行可能ファイルを実行してください。 必要に応じて、
-port引数で希望するポートを指定できます(例:jetbrains_debugger_agent_20240726.40.0 -port=1234)。指定しない場合はランダムに選択されます。SSH が開始され、出力にアクセス資格情報 (ログイン、パスワード、ポート) が表示されます。
ポートがアクセス可能であることを確認してください。
開発マシンとリモートホストの両方が同じネットワーク内にある必要があります。
または、ファイアウォール / ポート転送は、ネットワークの外部からポートにアクセスできるように構成する必要があります
または、 OpenSSH サーバー(英語)をインストールして構成します。
Web アプリケーションを作成する
Web アプリケーションがあれば、そのまま進めます。 それ以外の場合は、メインメニューから を選択し、 新規ソリューション ウィザードを使用してサンプル ASP .NET MVC アプリケーションを作成できます:

リモートホストへの接続を構成する
リモートホストへの接続は、2 つのサブシステムによって使用されます。1 つ目は SFTP を使ってアプリケーションをリモートデプロイするため、2 つ目は SSH を使ってリモートデバッグセッションを確立するためです。
Ctrl+Alt+S を押すか、メニューから (Windows および Linux) または (macOS) を選択します。
に進みます。
追加
Insert をクリックし、 SFTP を選択して、リモートホストの識別に役立つ名前を指定します。
リモートホストのアドレスとアクセス資格情報、および ルートパス (アプリケーションがデプロイされるリモートホスト上のパス)を指定します。 このディレクトリがリモートホストに存在することを確認してください。 Web ブラウザーアクセスに使用する Web サーバーの URL は、自動的に計算されます。

設定 ダイアログを閉じずに、 に進みます。
追加
Insert をクリックして、リモートホストの SSH アクセス資格情報を指定します。 多くの場合、これらは SFTP 資格情報と同じです。

保存 をクリックして設定を保存し、ダイアログを閉じます。
アプリケーションをリモートホストにデプロイする
JetBrains Rider でアプリケーションをデプロイするには、 実行構成を作成して使用する必要があります。
以下のいずれかの方法で 実行 / デバッグ構成 ダイアログを開きます。
メインメニューから を選択します。
ナビゲーションバーが表示された状態( )で、実行/デバッグ構成セレクターから を選択します。
Alt+Shift+F10 を押してから、 0 を押します。
実行 / デバッグ構成 ダイアログで、 新規構成の追加
Alt+Insert をクリックし、 カスタムサーバーに公開する. 構成タイプを選択して、今後この構成を識別するのに役立つ名前を指定します。
アプリケーションに対応するプロジェクトが正しく選択されていることを確認してください。
リモートサーバー フィールドで、JetBrains Rider 設定 Ctrl+Alt+S の ページで前の手順で作成した SFTP アクセスプロファイルを選択します。
ターゲットマシンによって異なる可能性のある他のオプションを指定します。

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

アプリケーションがデプロイされると、リモートホストで実行できます。
メニューから を選択し、SFTP アクセスプロファイルを選択します。

ターミナル ウィンドウに新しいセッションが表示されます。 アプリケーションのルートフォルダーが WebApplication であると仮定して、次のコマンドを入力します。
cd /[application path]/WebApplicationを使用して、アプリケーションのルートフォルダーに移動します。chmod +x ./WebApplication必要に応じて実行可能ビットを追加します。ASPNETCORE_URLS=http://0.0.0.0:5000 ./WebApplicationはアプリケーションを実行します

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

デバッガーが正常にアタッチされると、ブレークポイントアイコンに緑色のチェックマーク
がマークされます。デバッガーが接続された状態でアプリケーションが実行されている場合、ブラウザー
http://[remote host name]:5000でアプリケーション URL を開き、ブレークポイントが設定されているページにアクセスしてみます。
アプリケーションの実行がブレークポイントに達するとすぐに停止し、デバッグできるようになります。

リモートデバッグツールのオプションのデプロイ
デバッガーは、ターゲットアプリケーションが実行されているリモートホストに接続するときに、リモートホストにデプロイする必要がある リモートデバッグツール (dotnet 実行可能ファイル、Rider エージェント、それらの依存関係)に依存します。
リモートデバッグツールが見つからない場合、デバッガーは、アプリケーションに 初めて接続するときに、サイレントにデプロイします。
しかし、ターゲット環境が接続のたびに更新される場合があります。例えば、Docker コンテナー内でアプリケーションをデバッグしており、アプリケーションをビルドし直すと Docker イメージ全体も再構築される場合などです。
このような場合、新しいデバッグセッションはそれぞれ、リモートデバッグツールをデプロイすることから開始する必要がありますが、これは時間がかかる場合があります。
この起動遅延を回避するために、デバッガーに接続する前に、リモートデバッグツールをターゲットホストに手動または自動でデプロイできます。
次のいずれかのリンクを使用して、Windows 用のリモートデバッグツールをダウンロードします。
ツールをターゲットマシンの RiderRemoteDebugger ディレクトリまたは Docker イメージに解凍します。 例: %LOCALAPPDATA%\JetBrains\RiderRemoteDebugger\2022.1.1
次のリンクのいずれかを使用して、macOS 用のリモートデバッグツールをダウンロードします。
ツールをターゲットマシンの RiderRemoteDebugger ディレクトリまたは Docker イメージに解凍します。 例: /.local/share/JetBrains/RiderRemoteDebugger/2022.1.1
抽出されたすべてのファイルに次のコマンドを適用します。
xattr -d com.apple.quarantine FILE_NAME
次のリンクのいずれかを使用して、Linux 用のリモートデバッグツールをダウンロードします。
ツールをターゲットマシンの RiderRemoteDebugger ディレクトリまたは Docker イメージに解凍します。 例: ~/.local/share/JetBrains/RiderRemoteDebugger/2022.1.1