セキュリティモデル
作業にリモートサーバーへのアクセスが含まれる場合、ローカルマシンとバックエンド間の接続が保護され、やり取りされるデータが十分に暗号化されていることを確認する必要があります。
リモート開発セキュリティモデルを使用すると、作業のほぼすべてのセキュリティ面を制御できます。
IDE のコンポーネントは、サーバー側とクライアント側の両方で実行されています。 バックエンドで読み込まれた情報は、追加のユーザー操作なしでクライアントに転送される場合があり、またクライアントに提供された情報も追加のユーザー操作なしでサーバー側プロセスに転送される場合があります。
接続セキュリティ
JetBrains Client と IDE バックエンド間の通信は、安全な SSH トンネルで実行される場合でも、1.3 TLS でエンドツーエンド暗号化されます。 JetBrains は TLS 1.3 を使用し、それに加えて SSH セキュリティ接続が使用されます。
リモート開発ではルート証明書からの信頼階層がないため、中間者攻撃がないことを確認するために追加の手動チェックが実行されます。
通常の接続リンクは次のようになります。
接続時に、クライアントはホスト証明書のフィンガープリントが正確に
fpであることを確認します。 ホストが正しいことをクライアントに対して検証します (サードパーティーにハイジャックされていない)接続時に、ホストは、クライアントがワンタイム接続トークン
jtを提供することを確認します。 このトークンを知らないこのポートの接続を拒否します。
この接続を介して認証情報を転送したり、パブリックスペースを介してこの接続データを渡したりすることは安全です。 Code With Me も同様です。
ログと統計の収集
JetBrains は、ユーザーの権限に基づいて統計とログを収集します。 デフォルトでは、データ共有はすべてのリリースバージョンで無効になっており、IntelliJ IDEA の プレビューおよび早期アクセスプログラム (EAP) バージョンでは有効になっています。
データ共有を構成する
JetBrains が IntelliJ IDEA の操作時に使用する機能やアクションに関する匿名統計の収集を許可するには、 使用統計情報を送信する を選択してください。

JetBrains が IntelliJ IDEA の操作時に使用する機能とアクションに関する統計を収集できるようにするには、 EAP バージョンの使用時に使用統計を送信する チェックボックスを選択します。

このデータの収集と使用に関する詳細については、 データ共有設定を参照してください。
ログの収集
JetBrains がログを収集して送信するように要求すると、ログに機密データが含まれている可能性があることも警告されます。
メインメニューで へ移動します。
開いたダイアログで、 Finder に表示 をクリックすると、JetBrains にデータを送信することに同意します。

JetBrains プライバシーポリシーの詳細については、 JetBrainsWeb サイト(英語)を参照してください。
任意のリンクを開く
IDE では、さまざまな機能を使用するためにブラウザーを開くことが必要になる場合があります。 サーバー側にはブラウザーがないことに注意してください。 この場合、リクエストは JetBrains Client にリダイレクトされます。
クライアントマシンで任意のリンクを開く前に、JetBrains は確認ダイアログを表示します。

コピーアンドペーストアクション
コピーペースト アクションは、実際の貼り付けの前にのみクリップボードのコンテンツを送信し、実際のコピー中にのみバックエンドがクリップボードを変更できるようにします。
SSH 転送設定
SSH 転送 設定では、SSH キー転送を使用して、リモートサーバーから Git リポジトリへのアクセスを認証できます。 または、SSH-agent ヘルパーを使用して同じ結果を得ることができます。
SSH 転送設定にアクセスする
Ctrl+Alt+S を押して設定を開き、 を選択します。
右側のオプションから SSH エージェントの転送を有効化 を選択し、 OK をクリックして変更を保存します。

ポート転送
リモートサーバーのポートにアクセスするには、ローカルマシンに転送します。 デバッグの目的やファイアウォールのバイパスに役立つ場合があります。
実行ツールウィンドウを介してリモートポートを転送する
リモートセッションを開始し、プロジェクトを開きます。
アプリケーションの実行。
実行 ツールウィンドウで、アプリケーションはリスニングポートを表示します。

転送するポートをクリックし、オプションのリストから ポートの転送 を選択します。

転送後にブラウザーを開きたい場合は、 ポートを転送してブラウザーで開く を選択してください。
その結果、リモートポートはローカルマシンに転送されます。
作成したポートをクリックして、ブラウザーで結果を確認します。

転送されたポートはバックエンドコントロールセンターにも追加されます。

CLI 経由でフロントエンド側のブラウザーでリンクを開く
リモートマシンからポートを転送して、フロントエンド側のブラウザーでリンクを開くことができます。 これは、バックエンドでウェブサービスを実行している場合や、リモートで実行されるスクリプトにハードコードされたリンクがある場合に役立ちます。
リモートプロジェクトを開きます。
リモートターミナルを開きます。 Alt+F12
ポートを転送するには、次のいずれかのコマンドを使用します。
idea openUrlOnClient http://localhost:$portremote-dev-server serverMode openUrlOnClient https://localhost:$port
バックエンドコントロールセンターを介してポート転送を管理する
バックエンドコントロールセンターを通じてポートを追加、削除、編集できます。
ポートを追加する
リモートプロジェクトを開きます。
メインツールバーでバックエンドの名前をクリックして、バックエンドコントロールセンターウィンドウを開きます。
開いたウィンドウの ポート タブで、
をクリックして新しいポートを追加します。
を使用してポートを削除できます。 これは、プロジェクトの再起動時に
forwardedPorts.xmlファイルからも削除されます。提案されたフィールドでポート番号を入力し、 適用 をクリックして変更を保存します。

追加されたポートは
forwardedPorts.xmlファイルに保存されます。プロジェクトを再起動して、
forwardedPorts.xmlファイル内に追加されたポートを確認します。
ポートを削除する
リモートプロジェクトを開きます。
メインツールバーでバックエンドの名前をクリックして、バックエンドコントロールセンターウィンドウを開きます。
開いたウィンドウの ポート タブで、削除するポートを選択し、
をクリックします。
プロジェクトの再起動時に、ポートは
forwardedPorts.xmlファイルからも削除されます。
ポートを変更する
開いたウィンドウの ポート タブで、
をクリックして新しいポートを追加します。
提案されたフィールドでポート番号を入力し、 適用 をクリックして変更を保存する前に、ポートアドレスフィールドをクリックしてポート番号を変更します。

次の点に注意してください。
ポートの転送を停止し、そのポートが他の開いているプロジェクトで使用されていない場合、そのポートは
forwardedPorts.xmlファイルから削除されます。アプリケーションを閉じると、ポート転送が停止します。 プロジェクトを再度開くと、ポートが
forwardedPorts.xmlファイル (プロジェクトごと) からロードされ、転送され、必要な場所に表示されます。
ポート転送を無効にする
セキュリティ上の理由から、特定のユーザーまたはシステム全体のポートフォワーディング設定を無効にすることができます。
変更はホスト IDE 側で行う必要があります。
ユーザー固有の設定については、次のディレクトリにテキストファイルを作成します。
システム全体の設定については、次のディレクトリにテキストファイルを作成します。
ユーザー固有の設定については、次のディレクトリにテキストファイルを作成します。
システム全体の設定については、次のディレクトリにテキストファイルを作成します。
ユーザー固有の設定には、次のレジストリキーを使用します。
システム全体の設定には、次のレジストリキーを使用します。
SOFTWARE\JetBrains\portForwarding ディレクトリで、この設定の値で有効化されたキーを作成します。
ユーザーまたはシステム全体のポート転送を無効にする
セキュリティ上の理由から、 OsRegistryConfigProvider OS レジストリを使用して、特定のユーザーまたはシステム全体に対してポート転送 (porForwarding) を無効にすることができます。 レジストリの場所は、OS によって異なります。
ユーザー固有の設定については、次のディレクトリにテキストファイルを作成します。
システム全体の設定については、次のディレクトリにテキストファイルを作成します。
ユーザー固有の設定については、次のディレクトリにテキストファイルを作成します。
システム全体の設定については、次のディレクトリにテキストファイルを作成します。
ユーザー固有の設定には、次のレジストリキーを使用します。
システム全体の設定には、次のレジストリキーを使用します。
SOFTWARE\JetBrains\portForwarding ディレクトリで、この設定の値で有効化されたキーを作成します。
キーが存在しない場合、設定はデフォルトで true とみなされます。
リバースポート転送
リバースポートフォワーディングを設定すると、リモートマシンからローカルマシンへの接続を開始できます。 これは、たとえばモバイルデバイス上でアプリケーションを開発している場合や、ローカルマシン上のデータベースへのアクセスを必要とするリモートアプリケーションを開発している場合などに便利です。 リバースポートフォワーディングは永続化されるため、再接続時やプロジェクトを開いた際にポートが自動的に転送されます。
リバースポート転送を使用する場合は、考慮して軽減する必要がある潜在的なセキュリティリスクがいくつかあります。
- 不正アクセス
信頼できるサーバーや個人とだけ、リバースポート転送を使用してください。
- データ漏洩
機密データを転送するときは、必ず暗号化されていることを確認してください。
- マルウェア
マシン上のセキュリティツールは定期的にアップデートしてください。
リバースポート転送を構成する
リモートプロジェクトを開きます。
バックエンドコントロールセンターを開きます。
開いたウィンドウの ポート タブで、
をクリックして新しいポートを追加し、 リモートのローカル を選択します。

ポートのフィールドに必要なポート番号を追加し、 適用 をクリックします。

開いたダイアログで、ポート転送を要求しているリモートサーバーを信頼していることを確認し、 許可 をクリックします。


リバースポート転送を継続する
リモートプロジェクトに接続します。
リモートプロジェクトで、 Shift を 2 回押して「どこでも検索 」ウィンドウを開き、 レジストリ を入力します。

バックエンドホストとフロントエンド IDE の両方でフラグが有効になっていることを確認してください。
バックエンド側の レジストリ (ホスト上) ツールウィンドウを開き、
portForwarding.store.reverse.enabledフラグを確認します。
フロントエンド側の レジストリ ツールウィンドウを開き、
rdct.portForwarding.store.reverse.enabledフラグを確認します。
リバースポート転送は永続化されます。 リバースポートに関する情報は、 forwardedPorts.xml ファイルの reversePorts セクションに保存されます。
JetBrains Client のダウンロード場所を変更する
ダウンロード後に、JetBrains Client のフォルダーとファイルを保存する場所を再定義できます。
ユーザー固有の設定については、次のディレクトリにテキストファイルを作成します。
ファイルの内容は path/to/directory です。
システム全体の設定については、次のディレクトリにテキストファイルを作成します。
ファイルの内容は path/to/directory です。
ユーザー固有の設定については、次のディレクトリにテキストファイルを作成します。
ファイルの内容は path/to/directory です。
システム全体の設定については、次のディレクトリにテキストファイルを作成します。
ファイルの内容は path/to/directory です。
ユーザー固有の設定には、 HKEY_CURRENT_USER レジストリを使用します。
システム全体の設定には、 HKEY_LOCAL_MACHINE レジストリを使用します。
SOFTWARE\\JetBrains\\JetBrainsClient で、 path/to/directory を含む値でキー downloadDestination を作成します。