本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
開啟通道並使用瀏覽器型 SSH 來存取遠端裝置
您可以使用快速設定或手動設定方法來建立通道。本教學課程說明如何使用快速設定方法開啟通道,並使用瀏覽器型 SSH 連線至遠端裝置。如需查看如何使用手動設定方法來開啟通道的範例,請參閱 使用手動設定開啟通道並連線至遠端裝置。
您可以透過快速設定方法,使用可編輯的預設組態建立新的通道。已為您設定 Web 型本機代理,並使用 MQTT 將存取權杖自動傳遞到您的遠端目的地裝置。建立通道後,您可以使用主控台內的命令列介面開始與遠端裝置互動。
若採用快速設定方法,您必須使用 SSH 作為目的地服務才能存取遠端裝置。如需不同設定方法的詳細資訊,請參閱 通道設定方法。
快速設定方法的先決條件
-
遠端裝置所在的防火牆必須允許連接埠 443 上的傳出流量。您建立的通道將使用此通訊埠連線至遠端裝置。
-
您有 IoT 裝置代理程式 (請參閱 IoT Agent Snippet) 在連線至 AWS IoT 裝置閘道的遠端裝置上執行,並使用 MQTT 主題訂閱進行設定。如需詳細資訊,請參閱將裝置連線至 AWS IoT 裝置閘道。
-
您必須具有一個在遠端裝置上執行的 SSH 常駐程式。
開啟通道
您可以使用 AWS 管理主控台、 AWS IoT API 參考或 來開啟安全通道 AWS CLI。您可以選擇設定目的地名稱,但這並非本教學課程的必要步驟。如果您設定目的地,安全通道會使用 MQTT 自動將存取權杖傳遞至遠端裝置。如需詳細資訊,請參閱AWS IoT 主控台中的通道建立方法。
若要使用主控台中開啟通道
前往 AWS IoT 主控台的 Tunnels hub (通道中樞)
,然後選擇 Create job (建立通道)。
-
在本教學課程中,請選擇 Quick setup (快速設定) 作為通道建立方法,然後選擇 Next (下一步)。
注意
如果您從建立物件的詳細資訊頁面建立安全通道,您可以選擇要建立新通道或使用現有通道。如需詳細資訊,請參閱開啟遠端裝置的通道並使用瀏覽器型 SSH。
-
檢閱並確認通道組態詳細資訊。若要建立通道,請選擇 Confirm and create (確認並建立)。如果您要編輯這些詳細資訊,請選擇 Previous (上一步) 返回上一頁,然後確認並建立通道。
注意
使用快速設定時,將無法編輯服務名稱。您必須使用 SSH 作為服務。
-
若要建立通道,請選擇 Done (完成)。
在本教學課程中,您無需下載來源或目的地存取權杖。這些權杖只能用於連接通道一次。如果您的通道中斷連線,您可以產生新權杖並將其傳送到遠端裝置,以重新連線至通道。如需詳細資訊,請參閱重新傳送通道存取權杖。
若要使用主控台中開啟通道
若要開放新的通道,您可以使用 OpenTunnel API 操作。
注意
您只能從 AWS IoT 主控台使用快速設定方法建立通道。當您使用 AWS IoT API 參考 API 或 時 AWS CLI,它會使用手動設定方法。您可以開啟您所建立的現有通道,然後變更通道的設定方法,即可使用快速設定。如需詳細資訊,請參閱開啟現有的通道並使用瀏覽器型 SSH。
關於如何執行此 API 操作的範例如下所示。如果您要指定物件名稱和目的地服務,也可以選擇使用 DestinationConfig 參數。如需示範如何使用這個參數的範例,請參閱 為遠端裝置開啟新通道。
aws iotsecuretunneling open-tunnel
執行此命令會建立新的通道,並提供您來源和目的地存取權杖。
{ "tunnelId": "01234567-89ab-0123-4c56-789a01234bcd", "tunnelArn": "arn:aws:iot:us-east-1:123456789012:tunnel/01234567-89ab-0123-4c56-789a01234bcd", "sourceAccessToken": "<SOURCE_ACCESS_TOKEN>", "destinationAccessToken": "<DESTINATION_ACCESS_TOKEN>" }
使用瀏覽器型 SSH
在使用快速設定方法建立通道並且目的地裝置已連線至通道後,您就可以使用瀏覽器型 SSH 存取遠端裝置。透過瀏覽器型 SSH,您可以在主控台內的上下文命令列介面中輸入命令,即可直接與遠端裝置進行通訊。此功能可讓您更輕鬆地與遠端裝置互動,因為您不必在主控台外開啟終端或設定本機代理。
若要使用瀏覽器型 SSH
前往 AWS IoT 主控台的 Tunnels hub (通道中樞)
,然後選擇您建立的通道以檢視其詳細資訊。 展開 Secure Shell (SSH) 區段,然後選擇 Connect (連線)。
-
選擇是否要提供您的使用者名稱和密碼來驗證 SSH 連線,或者如需更安全的驗證,則可以使用裝置的私有金鑰。如果您使用私有金鑰進行身分驗證,請注意,只有 PEM 格式 (256 和 512) RSA 金鑰可與 AWS IoT Secure Tunneling SSH 主控台搭配使用。
-
若要使用使用者名稱和密碼進行連線,請選擇 Use password (使用密碼)。然後,您可以輸入使用者名稱和密碼,並開始使用瀏覽器內的 CLI。
-
若要使用目的地裝置的私有金鑰進行連線,請選擇 Use private key (使用私有金鑰)。指定您的使用者名稱並上傳裝置的私有金鑰檔案,然後選擇 Connect (連線) 以開始使用瀏覽器內 CLI。
-
在通過 SSH 連接驗證後,您即可迅速開始使用瀏覽器 CLI 輸入命令並與裝置進行互動,因為系統已為您設定本機代理。
如果瀏覽器 CLI 在通道持續時間之後保持開啟狀態,則可能會發生逾時,導致命令列介面中斷連線。您可以複製通道並啟動另一工作階段,以便在主控台本身內部與遠端裝置互動。
解決使用瀏覽器型 SSH 時發生的問題
以下介紹如何解決使用瀏覽器型 SSH 時可能發生的一些問題。
-
系統顯示錯誤,而不是命令列介面
您可能會看到錯誤,原因是目的地裝置中斷連線。您可以選擇 Generate new access tokens (產生新的存取權杖) 來產生新的存取權杖,並使用 MQTT 將權杖傳送到遠端裝置。新的權杖可以用來重新連線至通道。重新連線至通道會清除歷程記錄並重新整理命令列工作階段。
-
使用私有金鑰進行驗證時,您會看到通道中斷連線的錯誤
您可能會看到錯誤訊息,原因可能是目的地裝置尚未接受您的私有金鑰。若要解決此錯誤,請檢查您上傳用於進行驗證的私有金鑰檔案。如果仍然看到錯誤,請檢查您的裝置日誌。您也可以向遠端裝置發送新的存取權杖,藉此嘗試重新連線至通道。
-
您的通道已在使用工作階段時關閉
如果您的通道因保持開啟超過指定持續時間而關閉,則您的命令列工作階段可能會中斷連線。通道一旦關閉就不能重新開放。若要重新連線,您必須開啟另一個連往裝置的通道。
您可以複製通道,以建立與已關閉通道相同組態的新通道。您可以從 AWS IoT 主控台複製封閉的通道。若要複製通道,請選擇已關閉的通道以檢視其詳細資訊,然後選擇 Duplicate tunnel (複製通道)。指定您要使用的通道持續時間,然後建立新通道。
清除
-
關閉通道
我們建議您在使用完通道後關閉通道。如果開放時間超過指定的通道持續時間,通道也可能會關閉。通道一旦關閉就不能重新開放。您仍然可以選擇已關閉的通道,然後選擇 Duplicate tunnel (複製通道) 來複製通道。指定您要使用的通道持續時間,然後建立新通道。
-
若要從 AWS IoT 主控台關閉個別通道或多個通道,請移至 Tunnels hub
(通道中樞),選擇您要關閉的通道,然後選擇Close tunnel (關閉通道)。 -
若要使用 AWS IoT API 參考 API 關閉個別通道或多個通道,請使用 CloseTunnel API。
aws iotsecuretunneling close-tunnel \ --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd"
-
-
刪除通道
您可以從 永久刪除通道 AWS 帳戶。
警告
刪除動作為永久性動作,且無法還原。
-
若要從 AWS IoT 主控台刪除個別通道或多個通道,請移至 Tunnels hub
(通道中樞),選擇您要刪除的通道,然後選擇Delete tunnel (刪除通道)。 -
若要使用 AWS IoT API 參考 API 刪除個別通道或多個通道,請使用 CloseTunnel API。使用 API 時,請將
delete旗標設定為true。aws iotsecuretunneling close-tunnel \ --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd" --delete true
-