ProxyClient は DSW が提供するクライアント側のプロキシツールです。VPC や NAT ゲートウェイを設定することなく、SSH 経由で DSW インスタンスに接続できます。この方法は、VS Code やターミナルなどのローカルツールを使用した機械学習開発に最適です。
操作手順
手順1: DSW ProxyClient のダウンロードとインストール
-
DSW ProxyClient ツールをダウンロードし、ホームディレクトリに保存します。
お使いのオペレーティングシステムに応じて、ツールを以下のディレクトリに保存します。
-
Windows オペレーティングシステム: ユーザーの個人フォルダーに保存します。例: C:\Users\<username> または C:\ユーザー\<username>。
-
Linux: root ユーザーの場合は /root に、一般ユーザーの場合は /home/<username> に保存します。
-
macOS: /Users/<username> に保存します。
<username> を実際のユーザー名に置き換えます。
お使いのオペレーティングシステム用のクライアントをダウンロードします。
-
-
ターミナルで、ダウンロードしたクライアントファイルに実行権限を付与します。Windows (x86-64) バージョンの場合、この手順はスキップできます。
chmod 755 <proxyclient><proxyclient>をダウンロードしたクライアントファイルの名前に置き換えます。 -
設定ファイルを生成します。
-
設定コマンドを実行します。
# macOS または Linux ./proxyclient config # Windows proxyclient.exe config重要macOS で初めて
./proxyclientコマンドを実行すると、"proxyclient" cannot be opened because the developer cannot be verified.というプロンプトが表示されることがあります。続行するには、[システム環境設定] > [セキュリティとプライバシー] を開き、proxyclientの実行を許可してください。 -
プロンプトに従って、設定ファイルのパスを設定します。
設定ファイルの名前を入力します。パスを含めることもできます。
説明-
推奨: Enter キーを押し、デフォルトのパスとファイル名
~/.proxyclientconfigを使用します。 -
カスタムパスとファイル名を指定することもできます。たとえば、Windows の場合:
C:/Users/<username>/xxx/.proxyclientconfig。 -
カスタムパスを設定した場合は、「手順3」 で
./proxyclient addコマンドを実行する際に、-cまたは--config-fileフラグを使用してそのパスを指定する必要があります。
-
-
プロンプトに従って、RegionId、AccessKey ID、AccessKey Secret、および STSToken パラメーターを設定します。
次の表にパラメーターを示します。
パラメーター
説明
RegionId
DSW インスタンスが配置されているリージョンの ID です。たとえば、中国 (上海) の場合は cn-shanghai です。リージョン ID のリストについては、「リージョンとゾーン」をご参照ください。
重要リージョン ID は、DSW インスタンスのリージョンと一致している必要があります。
AccessKey ID
Alibaba Cloud アカウントのアクセスキーペアです。詳細については、「アクセスキーペアの作成」をご参照ください。
AccessKey Secret
STSToken
-
Alibaba Cloud アカウントまたは RAM ユーザーを使用している場合は、このパラメーターは空のままにしてください。
-
RAM ロールを使用してログインする場合は、一時的なセキュリティ認証情報を使用してこのパラメーターを設定する必要があります。STS トークンの生成方法については、「STS 一時トークンの取得」をご参照ください。
重要STS トークンが有効であることを確認してください。
-
-
手順2: SSH 認証の設定
SSH キーペアまたはパスワードを使用して DSW インスタンスに接続できます。
専用リソースグループ内の DSW インスタンスの場合、認証を設定した後、DSW インスタンスの Actions 列にある Save Image をクリックします。追加した公開鍵またはパスワードはインスタンスイメージに保存され、インスタンスの再起動後も有効なままです。
方法1: キーペア認証 (推奨)
-
SSH キーペアを生成します。
-
ローカルのターミナルで、次のコマンドを実行して、パスワードレスログイン用の SSH キーペアを生成します。デフォルトでは、RSA キーペアが作成されます。
ssh-keygen -
SSH キーペアの保存場所を指定します。
-
推奨: ファイル名を指定せずに Enter キーを押してください。デフォルトの SSH キーペアファイルは
~/.ssh/id_rsa(秘密鍵) と~/.ssh/id_rsa.pub(公開鍵) です。 -
オプション: SSH キーペアに
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 root -
SSH 設定ファイルを変更して、パスワードによる root ログインを許可します。
-
SSH 設定ファイルを開きます。
vi /etc/ssh/sshd_config -
#PermitRootLogin prohibit-passwordの設定をPermitRootLogin yesに変更し、ファイルを保存します。変更後の設定は次のようになります。
# Authentication: #LoginGraceTime 2m PermitRootLogin yes #StrictModes yes #MaxAuthTries 6 #MaxSessions 10
-
-
SSH サーバーを再起動して変更を適用します。
service ssh stop service ssh start
手順3: DSW インスタンスプロキシの追加
-
インスタンスリストから、接続したい DSW インスタンスの ID をコピーします。
ターゲットインスタンスをクリックして詳細パネルを展開します。パネル内で [Instance ID] フィールド (例:
dsw-xxxxxxd6) を見つけ、プロキシ設定用にインスタンス ID をコピーします。 -
ローカルのターミナルで、次のコマンドを実行して、DSW インスタンスを SSH ターゲットホストとして追加します。
<instance_id> をコピーしたインスタンス ID に置き換えます。
# macOS または Linux ./proxyclient add -i=<instance_id> # Windows proxyclient.exe add -i=<instance_id> -
.ssh/configファイルの内容を表示して、プロキシ設定が適用されていることを確認します。# macOS または Linux cat .ssh/config # Windows # ローカルのターミナルで、ユーザーのホームディレクトリに移動し、次のコマンドを実行します。 # config ファイルをダブルクリックして開くこともできます。 explorer .ssh\config -
オプション:SSH キーペアを生成する際に
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@<instance_id>:<remote_file_path>
# ローカルディレクトリをリモートインスタンスにコピーします。
scp -r local_dir root@<instance_id>:<remote_dir>
# リモートインスタンスからローカルマシンにファイルをコピーします。
scp root@<instance_id>:<remote_file_path> <local_file_path>
# リモートインスタンスからローカルマシンにディレクトリをコピーします。
scp -r root@<instance_id>:<remote_dir> <local_dir>
VS Code からの接続
手順は VS Code のバージョンによって異なる場合があります。詳細については、「Visual Studio Code ドキュメント」をご参照ください。
-
ローカルマシンで VS Code を開き、[Remote Connection] 拡張機能をインストールします。
アクティビティバーの [Extensions] アイコンをクリックしてマーケットプレイスを開きます。検索ボックスに
Remote - SSHと入力します。Remote - SSH 拡張機能を見つけて [Install] をクリックします。 -
VS Code のアクティビティバーで、Remote Explorer アイコン
をクリックします。[Remote Explorer] パネルが開きます。[SSH] ノードの下に、
dsw-*のように設定されたリモートホストを表示できます。 -
インスタンスへの新しいリモート接続を追加します。
-
Remote Connection の横にある Add New アイコン
をクリックします。表示されるテキストボックスに DSW インスタンス ID を入力し、Enter キーを押します。 -
更新する config ファイルをクリックして選択します。
C:\Users\<username>\.ssh\configにある設定ファイルを選択することを推奨します。 -
VS Code の右下に表示される [Host added] ダイアログで、[Connect] をクリックします。
-
[Linux] をクリックして、DSW インスタンスのオペレーティングシステムを選択します。
-
テキストボックスに、「手順2」 でローカルに保存したパスフレーズを入力し、Enter キーを押します。
接続が成功すると、VS Code に [Welcome] ページが表示されます。メインコンテンツエリアには、[Start] ショートカット ([New File...]、[Open File...]、[Open Folder...]、[Clone Git Repository...]) と [Walkthroughs] リスト ([Get Started with VS Code] や [Get Started with WSL] など) が含まれます。これは、VS Code からインスタンスに正常に接続できたことを示します。これで、リモートフォルダーを開いてローカル開発を開始できます。
-
-
この DSW インスタンスへの次回以降の接続では、ターゲットインスタンスを右クリックし、接続方法を選択してから、プロンプトの指示に従ってください。
接続方法には、[Connect to Host in Current Window] と [Connect to Host in New Window] があります。
よくある質問
Q: Direct SSH と ProxyClient の違いは何ですか。
|
方法A:Direct SSH |
方法B:ProxyClient |
|
|
特徴 |
VPC や NAT ゲートウェイなどのネットワークコンポーネントの設定が必要です。接続は高速で安定しています。 |
追加のネットワークコンポーネントは不要です。ただし、接続速度と安定性が低下する場合があります。 |
|
サポート対象インスタンス |
パブリックリソースグループ内の |
すべてのインスタンスタイプ。 |
|
認証方法 |
SSH キーペアで認証します。 |
|
|
アクセス方法 |
|
パブリックアクセス。 |
|
設定ガイド |
||
|
仕組み |
PAI は NAT ゲートウェイ上に DNAT ルールを自動的に作成し、パブリック SSH リクエストを DSW インスタンスに転送します。 |
すべてのトラフィックは PAI プロキシサーバー経由でルーティングされます。 |
|
課金に関する注意事項 |
パブリックアクセスの場合、NAT ゲートウェイと EIP は、DSW インスタンスが停止している場合でも継続的に料金が発生します。不要になった場合は、速やかに削除してください。 |
この設定では追加料金は発生しません。 |
Q: RAM ユーザーで接続に失敗するのはなぜですか。
RAM ユーザーの AccessKey を使用して ProxyClient 経由で接続する場合、プライマリアカウントが RAM ユーザーに paidsw:GetToken 権限を付与していることを確認する必要があります。そうでない場合、認証は失敗します。この権限を追加する手順は次のとおりです。
Q: 接続がタイムアウトしたり失敗したりするのはなぜですか。
proxyclient.exe によって生成された設定ファイルで、RegionId が DSW インスタンスのリージョンと同じであることを確認してください。
Q: SSH ログイン用に複数のユーザーを作成できますか。
デフォルトでは、DSW インスタンスは SSH ログイン用に root ユーザーのみを提供します。現在、DSW は複数の独立したユーザーを作成し、それぞれに分離された SSH ログインを設定することをネイティブにサポートしていません。インスタンス内で手動で新しいユーザーを作成することはできますが、これは公式にサポートされている標準的な方法ではありません。
Q: ローカル IDE でワークスペースファイルを見つけるにはどうすればよいですか。
SSH 経由でログインした後、デフォルトのディレクトリは root ユーザーのホームディレクトリ (/root) である場合があります。作業ファイルは通常、/mnt/workspace などのマウントされたデータディスクパスにあります。VSCode では、サイドバーの [File] > [Open Folder] 機能を使用して、サーバー上の正しい作業ディレクトリを手動で選択して開くことができます。その後、ファイルエクスプローラーでプロジェクトファイルを表示できます。
関連ドキュメント
-
ProxyClient を使用すると、頻繁な再接続や速度低下などの問題が発生し、パフォーマンスが低下する可能性があります。そのため、「Direct SSH 接続方法」の使用を推奨します。