如果您希望通過本地工具(例如VSCode或Terminal)遠端連線DSW執行個體進行機器學習開發,可以使用DSW提供的ProxyClient用戶端代理工具。該工具允許您通過SSH遠端連線DSW執行個體,且無需配置Virtual Private Cloud和NAT Gateway。
實施步驟
步驟一:下載和安裝DSW ProxyClient
下載DSW ProxyClient用戶端工具,並儲存到目前使用者主目錄下。
不同的作業系統,需要儲存的目錄如下:
Windows作業系統:儲存在使用者個人資料夾目錄,例如C:\Users\<username>目錄或C:\使用者\<username>目錄。
Linux作業系統:root使用者儲存在/root目錄;普通使用者儲存在 /home/<username>目錄。
Mac作業系統:儲存在/Users/<username>目錄。
其中,<username>需要替換為實際的目錄。
各版本的用戶端下載地址如下:
在命令列中,將下載的用戶端檔案修改為可執行檔。如果您下載的是Windows X86 64版本,則可以跳過該步驟。
chmod 755 <proxyclient>其中<proxyclient>表示下載的用戶端檔案名稱,需要根據實際情況修改。
組建組態檔案。
輸入配置命令。
# Mac,Linux。 ./proxyclient config # Windows。 proxyclient.exe config重要Mac首次運行
./proxyclient命令時,可能會提示:無法開啟”proxyclient“,因為無法驗證開發人員。請開啟Mac OS的系統喜好設定 > 安全性與隱私,設定允許proxyclient運行。根據提示設定設定檔路徑。
請輸入設定檔名,檔案名稱可以帶路徑。
說明建議直接按斷行符號鍵(Enter)使用預設路徑和設定檔名稱。預設為:
~/.proxyclientconfig。您也可以指定其他路徑和設定檔名稱。以Windows X86 64版本為例:
C:/Users/<username>/xxx/.proxyclientconfig。如果設定為其他路徑,請在後續步驟四中執行
./proxyclient add命令時,指定-c或--config-file為該路徑。
根據提示分別設定RegionId、AccessKey ID、AccessKey Secret和STSToken參數。
參數說明如下。
參數
說明
RegionId
地區ID,例如:華東2(上海)為cn-shanghai。更多其他地區ID,詳情請參見地區和可用性區域列表。
重要此處配置的地區ID,需要與DSW執行個體所在地區一致。
AccessKey ID
填寫帳號的AccessKey,關於如何擷取阿里雲賬戶的AccessKey ID和AccessKey Secret,詳情請參見建立AccessKey。
AccessKey Secret
STSToken
當您使用阿里雲帳號(主帳號)或RAM使用者(子帳號)登入時,不需要配置該參數,置空即可。
當您使用RAM角色登入時,需要使用臨時身份憑證,需要配置該參數。關於STSToken的產生方式,請參見擷取STS臨時Token。
重要請確保STS Token在有效期間內。
步驟二:配置SSH認證方式
您可以選擇使用SSH金鑰組或帳號密碼的認證方式串連DSW執行個體。
對於專有資源群組的DSW執行個體,認證方式配置完成後,單擊DSW執行個體操作列下的保存镜像,添加的公開金鑰或密碼會持久化到執行個體鏡像中,執行個體重新啟動後仍有效。
方式一:配置執行個體免密登入(推薦)
產生金鑰組。
在本地命令列中,運行以下命令,產生免密登入所需的公開金鑰和私密金鑰檔案,預設建立的密鑰類型為RSA。
ssh-keygen配置金鑰組儲存的檔案。
(推薦)不指定檔案名稱,直接按斷行符號鍵(Enter)。預設產生的金鑰組檔案為
~/.ssh/id_rsa(私密金鑰)和~/.ssh/id_rsa.pub(公開金鑰)。(可選)指定自訂金鑰組的檔案名稱,例如:example_id_rsa。
說明如果指定了自訂金鑰組的檔案名稱,您需要在步驟三:添加DSW執行個體代理產生的
~/.ssh/config中,通過指定IdentityFile的方式來聲明私密金鑰檔案路徑。
根據提示資訊設定passphrase,並將其儲存到本地。後續會使用該密碼來遠端連線DSW執行個體。
進入要串連的DSW執行個體,開啟Terminal,執行如下命令,setup_ssh.sh工具會自動幫您下載安裝SSH Server。
wget https://dsw-resource.oss-cn-beijing.aliyuncs.com/tools/setup_ssh.sh bash setup_ssh.sh根據提示配置SSH公開金鑰,啟動SSH Server。
方式二:配置帳號密碼登入
進入要串連的DSW執行個體,開啟Terminal。
執行如下命令設定root使用者密碼。
passwd root更改ssh設定檔,啟用root使用者以密鑰或公開金鑰認證方式登入。
開啟SSH設定檔。
vi /etc/ssh/sshd_config將配置
#PermitRootLogin prohibit-password修改為PermitRootLogin yes,並儲存設定檔。
重啟SSH Server服務,使設定生效。
service ssh stop service ssh start
步驟三:添加DSW執行個體代理
在執行個體列表頁面,按照下圖操作指引,查看並複製要串連的DSW執行個體ID。

在本地命令列中,運行以下命令,添加一個DSW執行個體作為SSH Target Host。
其中<執行個體ID>需要替換為步驟2中查詢的執行個體ID。
# Mac,Linux: ./proxyclient add -i=<執行個體ID> # Windows: proxyclient.exe add -i=<執行個體ID>查看
.ssh/config檔案內容,確認代理設定已生效。# Mac、Linux。 cat .ssh/config # Windows。在本地命令列中,進入使用者主目錄,使用以下命令查看config檔案內容。您也可以直接雙擊開啟config檔案。 explorer .ssh\config可選:如果您在產生密鑰時,使用自訂的密鑰檔案名稱,例如:example_id_rsa。請參考以下樣本修改
~/.ssh/config檔案,使用IdentityFile指定串連Host時使用的密鑰檔案路徑。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
步驟四:遠端連線DSW執行個體
使用終端遠端連線執行個體
開啟終端工具(例如本地命令列),執行以下命令,即可登入遠程執行個體。
其中<執行個體ID>需要替換為DSW執行個體的ID。
ssh <執行個體ID>您也可以通過scp命令,在本地主機和遠程執行個體之間複製檔案或目錄。
# 本地檔案複製到遠程執行個體。
scp local_file_path root@<DSW執行個體ID>:<remote_file_path>
# 本地目錄複寫到遠程執行個體。
scp -r local_dir root@<DSW執行個體ID>:<remote_dir>
# 從遠程執行個體複製檔案到本地。
scp root@<DSW執行個體ID>:<remote_file_path> <local_file_path>
# 從遠程執行個體複製檔案目錄到本地。
scp -r root@<DSW執行個體ID>:<remote_dir> <local_dir>使用VSCode遠端連線執行個體
不同的VSCode版本可能在操作步驟上有差異,請按照實際情況進行操作,詳情請參見Visual Studio Code。
在本地開啟VSCode,並參照下圖來安裝远程连接外掛程式。

在VSCode左側導覽列中,單擊
。
新增遠端連線執行個體。
單擊远程连接後的
新增遠端連線執行個體。在彈出的文字框中輸入DSW執行個體ID,並按斷行符號鍵(Enter)。
單擊並選擇需要更新的config檔案。

在VSCode右下角彈出的Host added對話方塊中,單擊Connect。

單擊Linux,選擇DSW執行個體的操作平台。

在文字框中輸入上述步驟三中儲存到本地的passphrase,並按斷行符號鍵(Enter)。

當VSCode開啟歡迎頁面時,表示串連成功。後續您可以在VSCode頁面開啟遠程檔案夾進行本地開發。

後續遠端連線該DSW執行個體時,您可以按右鍵目標執行個體,並選擇串連方式,根據提示資訊進行配置。

常見問題
Q:遠端連線SSH直連和ProxyClient代理兩種方案區別?
方案A:SSH 直連(推薦) | 方案B:ProxyClient 代理 | |
特點 | 需要配置VPC、NAT Gateway等網路組件。串連更快、更穩定。 | 無需其他網路組件。但連線速度和穩定性可能較差。 |
支援執行個體 |
| 所有類型執行個體。 |
鑒權方式 | 使用SSH的公開金鑰或私密金鑰進行鑒權。 |
|
訪問途徑 |
| 通過公網進行訪問。 |
配置方法 | ||
工作原理 | PAI 會自動在NAT Gateway上建立 DNAT 規則,將公網的 SSH 請求轉寄到您的 DSW 執行個體。 | 所有流量通過 PAI 的Proxy 伺服器進行中轉。 |
計費提醒 | 需要公網訪問時,NAT Gateway和 EIP 會持續計費,即使DSW已停止。如果不再需要,請及時刪除。 | 此配置不產生額外費用。 |
Q:RAM使用者(子帳號)為什麼串連失敗?
如果您使用RAM使用者的AccessKey通過ProxyClient串連,必須確保主帳號已為該RAM使用者授予paidsw:GetToken的操作許可權,否則會導致認證失敗。添加該許可權步驟:
Q:為什麼連線逾時或無法訪問?
檢查proxyclient.exe產生的設定檔中,RegionId是否與您的DSW執行個體所在地區完全一致。
Q:DSW執行個體是否支援建立多個使用者並分別通過SSH登入?
DSW執行個體預設僅提供root使用者用於SSH登入 。目前,DSW原生不支援建立多個獨立使用者並為他們分別配置SSH隔離登入的功能。您可以嘗試在執行個體內部手動建立新使用者,但這並非官方支援的標準用法。
Q:在本地IDE(如VSCode、PyCharm)中串連DSW時,看不到工作目錄檔案怎麼辦?
SSH登入後預設的目錄可能是root使用者的主目錄(/root)。您的工作檔案通常位於掛載的資料盤路徑下,例如 /mnt/workspace。在VSCode中,您可以通過側邊欄的“檔案” > “開啟檔案夾”功能,手動選擇並開啟伺服器上的正確工作目錄,即可在檔案瀏覽器中看到您的專案檔。
相關文檔
使用ProxyClient用戶端代理工具可能會影響使用體驗,例如頻繁需要重連、速度低等。因此,建議您使用遠端連線:SSH直連方式。