本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 AWS IoT 主控台,您可以從 Tunnels 中樞或您所建立 IoT 物件的詳細資訊頁面建立通道。當您從 Tunnel hub (通道中樞)建立通道,可以指定要使用快速設定或手動設定來建立通道。如需教學課程範例,請參閱開啟通道並開始遠端裝置的SSH工作階段。
當您從 AWS IoT 主控台的物件詳細資訊頁面建立通道時,您也可以指定要為該物件建立新通道或開啟現有通道,如本教學課程所示。如果您選擇現有通道,則可以存取您為此裝置建立的最新開放通道。然後,您可以使用終端機中的命令列介面將 SSH傳入裝置。
必要條件
-
遠端裝置所在的防火牆必須允許連接埠 443 上的傳出流量。您建立的通道將使用此通訊埠連線至遠端裝置。
-
您已在 AWS IoT 登錄檔中建立 IoT 物件 (例如
RemoteDevice1
)。此物件對應於您遠端裝置在雲端中的表示法。如需詳細資訊,請參閱在 AWS IoT 登錄檔中註冊裝置。 -
您有 IoT 裝置代理程式 (請參閱 IoT Agent Snippet) 在連線至 AWS IoT 裝置閘道的遠端裝置上執行,並以MQTT主題訂閱設定。如需詳細資訊,請參閱將裝置連線至 AWS IoT 裝置閘道 。
-
您必須在遠端裝置上執行SSH常駐程式。
為遠端裝置開啟新通道
假設您要開啟通道進入遠端裝置:RemoteDevice1
。首先,在 AWS IoT
登錄檔中建立名為 RemoteDevice1
的IoT 物件。然後,您可以使用 AWS Management Console、 AWS IoT API參考 API或 建立通道 AWS CLI。
透過在建立通道時設定目的地,安全通道服務會透過 和預留MQTT主題 () MQTT 將目的地用戶端存取權杖傳遞至遠端裝置$aws/things/RemoteDeviceA/tunnels/notify
。如需詳細資訊,請參閱AWS IoT 主控台中的通道建立方法。
若要從主控台建立遠端裝置的通道
選擇物件
RemoteDevice1
以檢視其詳細資訊,然後選擇 Create secure tunnel (建立安全通道)。選擇要建立新通道或是開啟現有通道。若要建立新通道,請選擇 Create new tunnel (建立新通道)。然後,您可以選擇要用快速設定或手動設定方法來建立通道。如需詳細資訊,請參閱 使用手動設定開啟通道並連線至遠端裝置 和 開啟通道並使用瀏覽器型SSH存取遠端裝置。
使用 建立遠端裝置的通道 API
若要開啟新的通道,您可以使用 OpenTunnelAPI操作。以下程式碼顯示執行此命令的範例。
aws iotsecuretunneling open-tunnel \ --region
us-east-1
\ --endpoint https://api.us-east-1
.tunneling.iot.amazonaws.com --cli-input-jsonfile://input.json
下列下顯示 input.json
檔案的內容。您可以使用 destinationConfig
參數來指定目的地裝置的名稱 (例如
) 以及要用來存取目的地裝置的服務,例如 RemoteDevice1
。您亦可選擇指定其他參數,如通道描述和標籤。SSH
input.json 的內容
{
"description": "Tunnel to remote device1
",
"destinationConfig": {
"services": [ "SSH
" ],
"thingName": "RemoteDevice1
"
}
}
執行此命令會建立新的通道,並提供您來源和目的地存取權杖。
{
"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
假設您已使用RemoteDevice1
手動設定方法或使用 AWS IoT API參考 為遠端裝置 建立通道API。然後,您可以開啟裝置的現有通道,然後選擇快速設定以使用瀏覽器型SSH功能。現有通道的組態無法編輯,因此您無法使用手動設定方法。
若要使用瀏覽器型SSH功能,您不需要下載來源存取權杖或設定本機代理。Web 型本機代理將為您自動設定,以便您開始與遠端裝置進行互動。
使用快速設定方法和瀏覽器型 SSH
前往您所建立物件
RemoteDevice1
的詳細資訊頁面,然後Create secure tunnel ( 建立安全通道)。選擇 Use existing tunnel (使用現有通道),開啟您為遠端裝置所建立的最新開放通道。無法編輯通道組態,因此您無法對通道使用手動設定方法。若要使用快速設定方法,請選擇 Quick setup (快速設定)。
-
繼續檢閱,確認通道組態詳細資訊,並建立通道。通道組態不可編輯。
當您建立通道時,安全通道會使用 RotateTunnelAccessTokenAPI操作來撤銷原始存取權杖,並產生新的存取權杖。如果您的遠端裝置使用 MQTT,這些權杖會自動交付到訂閱MQTT主題上的遠端裝置。您也可以選擇手動將這些權杖下載到來源裝置。
建立通道之後,您可以使用瀏覽器型 SSH ,使用內文命令列介面直接從主控台與遠端裝置互動。若要使用此命令行介面,請選擇您所建立物件的通道,然後在詳細資訊頁面中展開 Command-line interface (命令行介面) 區段。由於已為您配置本機代理,因此您可以開始輸入命令以迅速開始存取遠端裝置並與其進行互動RemoteDevice1
。
如需快速設定方法和使用瀏覽器型 的詳細資訊SSH,請參閱 開啟通道並使用瀏覽器型SSH存取遠端裝置。
清除
-
關閉通道
我們建議您在使用完通道後關閉通道。如果開放時間超過指定的通道持續時間,通道也可能會關閉。通道一旦關閉就不能重新開放。您仍然可以開啟已關閉的通道,然後選擇 Duplicate tunnel (複製通道) 來複製通道。指定您要使用的通道持續時間,然後建立新通道。
-
若要從 AWS IoT 主控台關閉個別通道或多個通道,請移至 Tunnels hub
(通道中樞),選擇您要關閉的通道,然後選擇Close tunnel (關閉通道)。 -
若要使用 AWS IoT API參考 關閉個別通道或多個通道API,請使用 CloseTunnelAPI操作。
aws iotsecuretunneling close-tunnel \ --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd"
-
-
刪除通道
您可以從 永久刪除通道 AWS 帳戶。
警告
刪除動作為永久性動作,且無法還原。
-
若要從 AWS IoT 主控台刪除個別通道或多個通道,請移至 Tunnels hub
(通道中樞),選擇您要刪除的通道,然後選擇Delete tunnel (刪除通道)。 -
若要使用 AWS IoT API參考 刪除個別通道或多個通道API,請使用 CloseTunnelAPI操作。使用 時API,請將
delete
旗標設定為true
。aws iotsecuretunneling close-tunnel \ --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd" --delete true
-