SSH による直接接続は、ローカルターミナルや Visual Studio Code (VSCode) から Data Science Workshop (DSW) インスタンスに接続するための、安定かつ高速な方法です。
適用範囲
サポートされるインスタンスタイプ:
パブリックリソースグループで作成された従量課金の DSW インスタンス。インスタンス仕様が
ecs.ebmで始まらないこと。Lingjun リソースを使用して作成された DSW インスタンス。
パブリック接続の制限:
パブリックネットワークから DSW インスタンスに接続すると、Platform for AI (PAI) は各インターネット NAT ゲートウェイの DNAT ルールを自動的に設定します。手動で設定する必要はありません。
各インターネット NAT ゲートウェイは最大 100 の DNAT ルールをサポートしており、これにより最大 100 の DSW インスタンスへの同時接続が可能です。クォータの詳細については、「クォータ」をご参照ください。
課金
パブリックネットワークから DSW インスタンスに接続するには、NAT Gateway と Elastic IP Address (EIP) を設定する必要があります。NAT Gateway と EIP は別途課金され、DSW インスタンスが停止している間も料金が発生し続けます。不要な課金を避けるため、これらのリソースが不要になった場合は速やかに削除してください。
操作手順
ステップ 1:内部 DNS 名前解決の有効化
内部 DNS 名前解決を有効化します。DSW インスタンスは通常、Virtual Private Cloud (VPC) 環境にデプロイされます。この環境では、サービス間の通信は効率的で安全なアクセスのために内部ドメイン名に依存します。SSH を使用して DSW インスタンスに接続すると、内部 DNS 名前解決サービスがドメイン名をインスタンスのプライベート IP アドレスに解決します。この名前解決は、接続を成功させるために不可欠です。
ステップ 2:SSH 公開鍵の生成
クライアントマシンで次のコマンドを実行して、公開鍵を生成します。DSW インスタンスにログインするためのパスフレーズを設定するよう求められます。このトピックのユースケースで示すように、`remote_ikernel` ツールを使用してインスタンスに接続する予定の場合は、パスフレーズを設定しないでください。代わりに、Enter キーを押して続行してください。
(推奨) デフォルトのディレクトリにキーペアを生成します:
ssh-keygenこのコマンドは、以下のデフォルトディレクトリに公開鍵 (
id_rsa.pub) と秘密鍵 (id_rsa) を生成します。ディレクトリに既に SSH キーペアが存在する場合、ファイルは上書きされます。各オペレーティングシステムのデフォルトパスは次のとおりです:Windows オペレーティングシステム:
C:\Users\<username>\.sshフォルダまたはC:\Users\<username>\.sshフォルダに保存されます。Linux:root ユーザーの場合は
/root/.ssh、一般ユーザーの場合は/home/<username>/.ssh。macOS:
/Users/<username>/.ssh。
カスタムディレクトリに公開鍵を生成します:
ssh-keygen -f /your/path/example_rsa # これにより、/your/path に example_rsa.pub と example_rsa が生成されます
ステップ 3:DSW インスタンスの SSH パラメーターの設定
DSW インスタンスを作成する際に、以下のネットワーク関連パラメーターを設定します。
既存のインスタンスの場合は、Change Settings をクリックし、パラメーターを変更してから OK をクリックします。
VPC、vSwitch、およびセキュリティグループの設定
パブリックリソースを使用して DSW インスタンスを作成する場合、Virtual Private Cloud、vSwitch ID、および Security Group を設定する必要があります。詳細については、「VPC と vSwitch の作成」および「セキュリティグループの管理」をご参照ください。注:VPC とセキュリティグループは、DSW インスタンスと同じリージョンにある必要があります。
SSH 関連パラメーターの設定
Enable SSH:このスイッチをオンにします。
SSH Public Key:ステップ 2 で生成された公開鍵ファイル
id_rsa.pubの内容をこのテキストボックスにコピーします。VPC とパブリックネットワークの両方からのログインをサポートするには、複数のクライアントの公開鍵を追加する必要があります。各キーを新しい行に追加します。最大 10 個の公開鍵を追加できます。
Custom Services:Enable SSH スイッチをオンにすると、SSH という名前の Custom Services が表示されます。
Listener Port:DSW インスタンス内のサービスがリッスンするポートです。デフォルトは 22 です。
Service Access Method:
Access over VPC:この方法はデフォルトで有効になっています。VPC 内の他のターミナル (Elastic Compute Service (ECS) インスタンスなど) から DSW インスタンス内のサービスにアクセスできます。
Access over Internet:このオプションを選択して、パブリックアクセスを追加します。また、NAT Gateway と Internet Access Gateway を設定する必要があります。
Internet Access Port:パブリックネットワークからのアクセスを許可するポートで、SSH コマンドの
-pパラメーターに対応します。例:1024。
NAT Gateway:このパラメーターはパブリックアクセスに必要です。現在の VPC 用に作成されたインターネット NAT ゲートウェイを選択します。
EIP:このパラメーターはパブリックアクセスに必要です。現在の NAT Gateway 用に作成された EIP を選択します。
以下の手順に従って、インターネット NAT ゲートウェイと EIP を作成します:
ステップ 4:SSH サーバーのインストール
ご利用の DSW インスタンスが公式のプリインストール済みイメージ、または公式イメージをベースにしたカスタムイメージを使用している場合、SSH サーバーはデフォルトでインストールされているため、このステップはスキップできます。それ以外の場合は、手動で SSH サーバーをインストールする必要があります。
DSW インスタンスを開きます。
DSW ターミナルで、次のコマンドを実行します。
sudo apt-get update sudo apt-get install openssh-server sudo service ssh startコマンドが失敗し、`sudo: command not found` エラーが返された場合は、
apt-get install sudoを実行してから、上記のコマンドを再度実行します。次のコマンドを実行して、SSH サーバーのステータスを確認します。
service ssh status
ステップ 5:DSW インスタンスへのリモート接続
アクセス方法の表示
DSW ページで、インスタンス名をクリックしてインスタンス詳細ページを開きます。Instance Settings タブの Network Settings セクションで、[パブリックアクセス方法] と [VPC アクセス方法] を見つけます。
説明SSH 設定でパブリックアクセスを選択しなかった場合、VPC アクセス方法のみが表示されます。
DSW インスタンスへの接続
SSH を使用した接続
パブリックネットワークアクセス
ローカルのコマンドラインまたは他のターミナルで、前のステップで取得したパブリックアクセス方法を使用して DSW インスタンスに接続します。
ssh root@xx.xx.xx.xx -p 1024 # 秘密鍵がデフォルトパスにない場合は、その場所を指定します ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024重要-pパラメーターの値 1024 は、SSH 用に設定されたパブリックアクセスポートです。VPC アクセス
VPC 内の別のターミナル (ECS インスタンスなど) から、前のステップで取得した VPC アクセス方法を使用して DSW インスタンスに接続します。
ssh root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22 # 秘密鍵がデフォルトパスにない場合は、その場所を指定します ssh -i /your/path/example_rsa root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22
ローカル VSCode を使用した接続
VSCode を開き、拡張機能マーケットプレイスから Remote - SSH 拡張機能をインストールします。

左下のアイコン
をクリックし、ポップアップメニューから [ホストに接続...] > [新しい SSH ホストを追加...] を選択します。SSH 接続コマンドを入力します。
ssh root@xx.xx.xx.xx -p 1024 # 秘密鍵がデフォルトパスにない場合は、その場所を指定します ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024
右下隅の Open をクリックします。左下隅に接続成功のメッセージが表示されます。

DSW インスタンス内のディレクトリを開き、リモートでの開発とデバッグを開始します。

実行中に、DSW インスタンスのカーネルに接続できます。

ユースケース:ローカルのノートブックコードを DSW インスタンスで実行
前提条件
このトピックのステップ 1 からステップ 4 までの SSH 直接接続設定を完了しており、かつ SSH 公開鍵を生成する際にパスフレーズを設定していないこと。
操作手順
ローカルターミナルで、remote_ikernel ツールをインストールし、初期設定を行い、リモートカーネルを追加します。
pip install remote_ikernelremote_ikernel manage --add \ --kernel_cmd="ipython kernel -f {connection_file}" \ # 変更不要 --name="Remote Python" \ --interface=ssh \ --host=root@*.*.*.*:1024 # これをホストアドレスに変更します。秘密鍵がデフォルトパスにない場合は、--host="-i /your/path/example_rsa root@*.*.*.*:1024" に設定します以下の出力は、リモートカーネルが正常に追加されたことを示します。
Added kernel ['rik_ssh_root_121_40_*_*_1024_remotepython']: SSH root@121.40.*.*:1024 Remote Python.次のコマンドを実行して、リモートカーネルの設定を表示します。
remote_ikernel manage --showローカルの VSCode で、ノートブックファイルを開きます。右上のカーネルセレクターをクリックし、検索ボックスで「Remote Python」を見つけて選択します。

よくある質問
Q:DSW インスタンスへの接続において、SSH 直接接続と ProxyClient エージェントの違いは何ですか?
オプション A:SSH 直接接続 (推奨) | オプション B:ProxyClient プロキシ | |
特徴 | VPC や NAT Gateway などのネットワークコンポーネントの設定が必要です。接続はより高速で安定しています。 | 追加のネットワークコンポーネントは不要です。ただし、接続が遅く、不安定になる場合があります。 |
サポートされるインスタンス |
| すべてのインスタンスタイプ。 |
認証方法 | 認証には SSH の公開鍵または秘密鍵を使用します。 |
|
アクセスパス |
| パブリックネットワークアクセス。 |
設定方法 | ||
仕組み | PAI は NAT Gateway 上に DNAT ルールを自動的に作成し、パブリック SSH リクエストをご利用の DSW インスタンスに転送します。 | PAI のプロキシサーバーがすべてのトラフィックを中継します。 |
課金に関する注意事項 | パブリックアクセスが必要な場合、インターネット NAT ゲートウェイと EIP は、DSW インスタンスが停止している間も継続的に料金が発生します。不要になった場合は、速やかに削除してください。 | この設定では追加費用は発生しません。 |
Q:PyCharm などのローカル IDE から SSH を使用して DSW インスタンスに接続できますか?
はい、ネイティブの SSH プロトコルを使用するすべての IDE がサポートされています。ただし、PyCharm などの IDE はサーバー側のコンポーネントを DSW インスタンスに自動的にダウンロードしてインストールする場合があります。これを機能させるには、DSW インスタンスがパブリックネットワークにアクセスできることを確認する必要があります。
Q:DSW インスタンスへの接続時に SSH 接続の失敗、タイムアウト、またはキーの拒否が発生した場合、どのようにトラブルシューティングすればよいですか?
接続の失敗は、通常、ネットワーク設定、認証、または権限の問題が原因です。以下のようにトラブルシューティングできます:
パブリック IP アドレスにアクセスできない場合のトラブルシューティング方法は?
まず、VPC 環境内から VPC アドレスを使用して DSW インスタンスにアクセスできることを確認します。
VPC アドレスを使用してインスタンスにアクセスできるが、パブリックアドレスではアクセスできない場合は、選択した VPC に複数のインターネット NAT ゲートウェイを作成しているかどうかを確認します:
複数のインターネット NAT ゲートウェイがある場合は、「同一 VPC 内での複数インターネット NAT ゲートウェイのデプロイメントソリューション」をご参照ください。ご利用の NAT Gateway、vSwitch、およびルートテーブル間の関係が正しいことを確認してください。DSW で選択した vSwitch は、選択した NAT Gateway にトラフィックをルーティングできるルートテーブルに関連付けられている必要があります。これにより、SSH リクエストへの応答がクライアントに返されることが保証されます。
インターネット NAT ゲートウェイが 1 つしかない場合は、セルフサービス型トラブルシューティングツールを使用してネットワーク接続の問題を確認します。ご利用のローカルパブリック IP、パブリック EIP、および DSW インスタンスに割り当てられたポート (DSW インスタンス詳細ページのパブリックアクセス方法で設定されたポート) を入力して、ネットワークの到達可能性を分析します。
VPC アクセスが失敗する場合のトラブルシューティング方法は?
カスタムイメージを使用しているかどうか、またカスタムイメージで SSH サービスがインストールされ、有効になっているかどうかを確認します。詳細については、「ステップ 4:SSH サーバーのインストール」をご参照ください。
インスタンスのセキュリティグループのインバウンドルールが TCP ポート 22 でのアクセスを許可していることを確認します。
上記の方法で問題が解決しない場合は、アカウントマネージャーに連絡して詳細な調査を依頼してください。
接続のタイムアウトまたは到達不能:
直接 SSH (パブリックネットワーク):DSW インスタンスに設定されているインターネット NAT ゲートウェイとセキュリティグループのルールを確認します。正しいポートがパブリックネットワークに公開されていることを確認してください。
直接 SSH (VPC):同じ VPC 内の ECS インスタンスから接続している場合は、両方のインスタンスが同じ VPC 内にあることを確認し、VPC のプライベートゾーンサービスを有効にしてみてください。
キーの拒否 (Permission denied または Server refused our key):
キーペアが
ssh-keygenを使用してローカルで生成されたこと、および公開鍵 (id_rsa.pubファイルの内容) が DSW インスタンスの SSH 設定に完全かつ正しく追加されたことを確認します。SSH コマンドを実行する際、使用している秘密鍵が DSW に追加された公開鍵と一致することを確認してください。秘密鍵ファイルがデフォルトのパス (
~/.ssh/id_rsa) にない場合は、-iパラメーターを使用してそのパスを明示的に指定する必要があります。
VSCode への接続失敗:
Remote - SSH拡張機能がインストールされていることを確認します。新しいホストを追加する際、
ssh root@xx.xx.xx.xx -p 1024のような完全な SSH コマンドが正しいことを確認します。接続が失敗した場合は、まずローカルターミナルで SSH コマンドを使用して直接接続を試みます。ターミナルからのエラーメッセージを使用して、問題をさらに診断します。
Q:インスタンスのパブリック IP アドレスを確認するにはどうすればよいですか?
インターネット NAT ゲートウェイを設定している場合、次のようにパブリック IP アドレスを表示できます。
Q:DSW インスタンスで複数のユーザーを作成して、個別に SSH ログインすることは可能ですか?
デフォルトでは、DSW インスタンスは SSH ログイン用に root ユーザーのみを提供します。DSW は、複数の独立したユーザーを作成し、それぞれに分離された SSH ログインを設定することをネイティブにサポートしていません。インスタンス内で手動で新しいユーザーを作成することは試せますが、これは公式にサポートされている標準的な方法ではありません。
Q:VSCode や PyCharm などの IDE で DSW インスタンスに接続した後、プロジェクトファイルが表示されないのはなぜですか?
SSH ログイン後、デフォルトのディレクトリは root ユーザーのホームディレクトリ (/root) になっている場合があります。作業ファイルは通常、/mnt/workspace などのマウントされたデータディスクパスにあります。VSCode では、サイドバーの「ファイル」>「フォルダーを開く」機能を使用して、サーバー上の正しい作業ディレクトリを手動で選択して開くことができます。これにより、プロジェクトファイルがファイルブラウザに表示されます。
関連ドキュメント
この直接接続方法がユースケースに適していない場合、または追加のネットワークコンポーネントを設定したくない場合は、リモート接続に ProxyClient メソッドを使用することを検討してください。
VPC 名、IPv4 CIDR ブロック、および vSwitch を設定し、他のパラメーターはデフォルト値を使用します。その後、OK をクリックして VPC と vSwitch を作成します。





