VSCode やターミナルなどのローカルツールから Data Science Workshop (DSW) インスタンスにリモート接続して機械学習開発を行うには、DSW が提供する ProxyClient ツールを使用します。このツールを使用すると、Virtual Private Cloud (VPC) や NAT Gateway を構成することなく、SSH 経由で DSW インスタンスに接続できます。
手順
ステップ 1: DSW ProxyClient のダウンロードとインストール
DSW ProxyClient ツールをダウンロードし、ユーザーのホームディレクトリに保存します。
必要なディレクトリは、オペレーティングシステムによって異なります:
Windows: C:\Users\<username> などのユーザープロファイルフォルダーに保存します。
Linux: root ユーザーの場合は /root に、一般ユーザーの場合は /home/<username> に保存します。
macOS: /Users/<username> に保存します。
<username> を実際のユーザー名に置き換えてください。
各バージョンのダウンロードリンクは以下のとおりです:
コマンドラインで、クライアントファイルを実行可能にします。このステップは Windows では不要です。
chmod 755 <proxyclient><proxyclient>をダウンロードしたクライアントファイルの名前に置き換えてください。構成ファイルを生成します。
構成コマンドを実行します。
# macOS, Linux ./proxyclient config # Windows proxyclient.exe config重要macOS で初めて
./proxyclientコマンドを実行すると、「"proxyclient" は開発元を確認できないため開けません。」というエラーメッセージが表示されることがあります。これを解決するには、 に移動し、アプリケーションの実行を許可します。プロンプトに従って、構成ファイルのパスを設定します。
構成ファイルの名前を入力します。パスを含めることもできます。
説明Enter キーを押して、デフォルトのパスとファイル名である
~/.proxyclientconfigを使用することをお勧めします。カスタムパスとファイル名を指定することもできます。たとえば、Windows (x86-64) の場合:
C:/Users/<username>/xxx/.proxyclientconfig。カスタムパスを設定した場合は、ステップ 3 で
./proxyclient addコマンドを実行するときに-cまたは--config-fileフラグを使用して指定する必要があります。
プロンプトに従って、RegionId、AccessKey ID、AccessKey Secret、および STS Token パラメーターを設定します。
次の表に、これらのパラメーターを示します。
パラメーター
説明
RegionId
リージョンの ID です。たとえば、中国 (上海) の場合は
cn-shanghaiです。リージョン ID の完全なリストについては、「リージョンとゾーン」をご参照ください。重要ここで構成するリージョン ID は、DSW インスタンスのリージョンと一致している必要があります。
AccessKey ID
アカウントの AccessKey を入力します。Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret を取得する方法については、「AccessKey ペアの作成」をご参照ください。
AccessKey Secret
STSToken
Alibaba Cloud アカウントまたは RAM ユーザーを使用している場合は、これを空のままにします。
RAM ロールとしてログインする場合は、一時的な ID 認証情報 (STS トークン) を提供する必要があります。セキュリティトークンサービス (STS) トークンを生成する方法については、「STS トークンの取得」をご参照ください。
重要STS トークンの有効期限が切れていないことを確認してください。
ステップ 2: SSH 認証方式の設定
SSH キーペアまたはユーザー名とパスワードのいずれかを使用して、DSW インスタンスに接続できます。
専用リソースグループ内の DSW インスタンスの場合、認証を設定した後、インスタンスの [アクション] 列にある [イメージの保存] をクリックします。これにより、公開鍵またはパスワードがインスタンスイメージに永続化され、再起動後も有効なままになります。
方法 1: パスワードなしのログオンを設定する (推奨)
キーペアを生成します。
ローカルのコマンドラインで、次のコマンドを実行してパスワードなしのログイン用のキーペアを生成します。デフォルトでは、このコマンドは RSA キーペアを作成します。
ssh-keygenキーペアを保存するファイルを指定します。
(推奨) ファイル名を指定せずに Enter キーを押します。デフォルトのキーペアファイルは
~/.ssh/id_rsa(秘密鍵) と~/.ssh/id_rsa.pub(公開鍵) です。(オプション)
example_id_rsaなど、キーペアのカスタムファイル名を指定します。説明カスタムファイル名を指定した場合は、ステップ 3: DSW インスタンスプロキシの追加で生成する
~/.ssh/configファイルでIdentityFileディレクティブを使用して秘密鍵ファイルのパスを宣言する必要があります。
プロンプトに従ってパスフレーズを設定し、ローカルに保存します。後で DSW インスタンスに接続する際に、このパスフレーズを使用します。
接続先の DSW インスタンスでターミナルを開き、次のコマンドを実行します。
setup_ssh.shツールが自動的に SSH サーバーをダウンロードしてインストールします。wget https://dsw-resource.oss-cn-beijing.aliyuncs.com/tools/setup_ssh.sh bash setup_ssh.shプロンプトに従って SSH 公開鍵を設定し、SSH サーバーを起動します。
方法 2: ユーザー名とパスワードによるログインを設定する
接続先の DSW インスタンスでターミナルを開きます。
次のコマンドを実行して、root ユーザーのパスワードを設定します。
passwd rootSSH 構成ファイルを変更して、root ユーザーがパスワードを使用してログインできるようにします。
SSH 構成ファイルを開きます。
vi /etc/ssh/sshd_config行
#PermitRootLogin prohibit-passwordをPermitRootLogin yesに変更してファイルを保存します。
SSH サーバーサービスを再起動して変更を適用します。
service ssh stop service ssh start
ステップ 3: DSW インスタンスプロキシの追加
[インスタンス] ページで、接続するインスタンスを見つけ、次の図に示すようにインスタンス ID をコピーします。

ローカルのコマンドラインで、次のコマンドを実行して DSW インスタンスを SSH ターゲットホストとして追加します。
前のステップでコピーしたインスタンス ID で
<instance ID>を置き換えます。# macOS, Linux: ./proxyclient add -i=<instance ID> # Windows: proxyclient.exe add -i=<instance ID>.ssh/configファイルの内容を表示して、プロキシ設定が適用されていることを確認します。# macOS, Linux cat .ssh/config # Windows。ローカルのコマンドラインで、ユーザーのホームディレクトリに移動し、次のコマンドを使用して設定ファイルの内容を表示します。設定ファイルをダブルクリックして開くこともできます。 explorer .ssh\configオプション:
example_id_rsaなど、キーペアにカスタムファイル名を使用した場合は、~/.ssh/configファイルを変更する必要があります。次の例に示すように、IdentityFileディレクティブを使用して秘密鍵ファイルへのパスを指定します。Host dsw-b7a2765b267e**** HostName dsw-b7a2765b267e**** User root ProxyCommand ~/proxyclient connect --region-id=cn-hangzhou --instance-id=dsw-b7a2765b267e**** --config-file=*** ServerAliveInterval 30 IdentityFile ~/.ssh/example_id_rsa
ステップ 4: DSW インスタンスへのリモート接続
ターミナルを使用して接続する
ターミナルツール (ローカルのコマンドラインなど) を開き、次のコマンドを実行してリモートインスタンスにログインします。
<instance ID> を DSW インスタンスの ID に置き換えます。
ssh <instance ID>scp コマンドを使用して、ローカルマシンとリモートインスタンス間でファイルやディレクトリをコピーすることもできます。
# ローカルファイルをリモートインスタンスにコピーします。
scp local_file_path root@<DSW instance ID>:<remote_file_path>
# ローカルディレクトリをリモートインスタンスにコピーします。
scp -r local_dir root@<DSW instance ID>:<remote_dir>
# リモートインスタンスからローカルマシンにファイルをコピーします。
scp root@<DSW instance ID>:<remote_file_path> <local_file_path>
# リモートインスタンスからローカルマシンにディレクトリをコピーします。
scp -r root@<DSW instance ID>:<remote_dir> <local_dir>VSCode を使用して接続する
手順は VSCode のバージョンによって異なる場合があります。詳細については、「Visual Studio Code」をご参照ください。
ローカルマシンで VSCode を開き、次の図に示すように [Remote-SSH] 拡張機能をインストールします。

VSCode の左側のナビゲーションウィンドウで、
をクリックします。
インスタンスへのリモート接続を追加します。
[SSH] の横の
アイコンをクリックします。表示されるテキストボックスに DSW インスタンス ID を入力し、[Enter] を押します。
クリックして更新する設定ファイルを選択します。

VSCode の右下隅に表示される [Host Added] ダイアログで、[Connect] をクリックします。

[Linux] をクリックして、DSW インスタンスのオペレーティングプラットフォームを選択します。

テキストボックスに、ステップ 2 で作成したパスフレーズを入力して Enter キーを押します。

VSCode がようこそページを開くと、接続は成功です。これで、VSCode でリモートフォルダを開いて開発を開始できます。

この DSW インスタンスへのその後の接続では、ターゲットインスタンスを右クリックし、接続方法を選択して、プロンプトに従います。

よくある質問
Q: DSW インスタンスへの「Direct SSH」経由の接続と「ProxyClient」メソッドの違いは何ですか?
方法 A: Direct SSH 接続 (推奨) | 方法 B: ProxyClient プロキシ | |
機能 | VPC や NAT Gateway などのネットワークコンポーネントが必要です。より高速で安定した接続を提供します。 | 追加のネットワークコンポーネントは不要です。接続が遅くなったり、不安定になったりする場合があります。 |
サポートされるインスタンス |
| すべてのインスタンスタイプ。 |
認証方法 | SSH キーを使用したワンステップ認証。 |
|
アクセスパス |
| パブリックインターネットアクセスのみ。 |
構成方法 | ||
仕組み | PAI は NAT Gateway 上に DNAT ルールを自動的に作成し、パブリック SSH リクエストを DSW インスタンスに転送します。 | すべてのトラフィックは PAI プロキシサーバーを介してリレーされます。 |
課金に関する注意 | NAT Gateway と EIP は、DSW インスタンスが停止していても、存在する限り料金が発生します。不要になった場合は削除してください。 | この方法では追加費用は発生しません。 |
Q: RAM ユーザーの AccessKey を使用すると、DSW インスタンスへの ProxyClient 接続が失敗するのはなぜですか?
RAM ユーザーの AccessKey を使用して ProxyClient 経由で接続する場合、Alibaba Cloud アカウントが RAM ユーザーに paidsw:GetToken 権限を付与していることを確認する必要があります。そうでない場合、認証は失敗します。権限を追加するには、次のステップを実行します:
Q: ProxyClient で DSW インスタンスに接続する際の「接続タイムアウト」エラーを修正するにはどうすればよいですか?
接続タイムアウトエラーは、多くの場合、ProxyClient 構成ファイルの RegionId と DSW インスタンスの実際のリージョンとの不一致が原因です。これを解決するには、構成ファイル (デフォルトは ~/.proxyclientconfig) を開き、RegionId の値が DSW インスタンスが配置されているリージョン (例: cn-shanghai) と完全に一致することを確認します。
Q: DSW インスタンスに複数のユーザーを作成して、個別の SSH ログインを行う方法はありますか?
いいえ、DSW は分離された SSH ログインのための複数ユーザーの作成をネイティブにサポートしていません。デフォルトでは、DSW インスタンスは SSH アクセス用に root ユーザーのみを提供します。インスタンスのオペレーティングシステム内で手動で新しいユーザーを作成しようとすることはできますが、これは公式にサポートまたは推奨されている構成ではありません。
Q: VSCode から SSH 経由で DSW インスタンスに接続した後、/mnt/workspace 内のプロジェクトファイルにアクセスするにはどうすればよいですか?
プロジェクトファイルは /mnt/workspace にありますが、これは SSH 経由で最初に接続したときのデフォルトディレクトリ (/root) ではありません。IDE からこのフォルダを手動で開く必要があります。
VSCode でこれを行うには:
DSW インスタンスに接続した後、[ファイル] > [フォルダーを開く...] に移動します。
表示されるダイアログボックスで、
/mnt/workspaceと入力し、[OK] をクリックします。プロジェクトファイルが VSCode Explorer のサイドバーに表示されます。
参考資料
ProxyClient ツールは、頻繁な再接続や低速などの問題を引き起こす可能性があります。そのため、リモート接続: Direct SSH メソッドを使用することをお勧めします。