

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 SSH 連線至開發環境
<a name="devenvironment-connect-ssh"></a>

您可以使用 SSH 連線到開發環境，以無限制地執行動作，例如連接埠轉送、上傳和下載檔案，以及使用其他 IDEs。

**注意**  
如果您想要在關閉 IDE 標籤或視窗後長時間繼續使用 SSH，請務必為開發環境設定高逾時，使其不會因為 IDE 中的閒置而停止。

**先決條件**
+ 您需要下列其中一個作業系統：
  + Windows 10 或更新版本並啟用 OpenSSH 
  + macOS 和 Bash 第 3 版或更新版本
  + Linux 搭配 `yum`、 `dpkg`或 `rpm`套件管理員和 Bash 第 3 版或更新版本
+ 您也需要 2 AWS CLI .9.4 版或更新版本。<a name="devenvironment-connect-ssh-steps"></a>

**使用 SSH 連線至開發環境**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至您要使用 SSH 連線至開發環境的專案。

1. 在導覽窗格中，選擇**程式碼**。

1. 選擇**開發環境**。

1. 選擇您要使用 SSH 連線的執行中開發環境。

1. 選擇**透過 SSH 連線**，選擇所需的作業系統，然後執行下列動作：
   + 如果您尚未這樣做，請在指定的終端機中貼上並執行第一個命令。命令會下載指令碼，並在您的本機環境中執行下列修改，以便您可以使用 SSH 連線至開發環境：
     + 安裝 [的 Session Manager 外掛程式 AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)
     + 修改您的本機 AWS Config 並新增 CodeCatalyst 設定檔，以便您能夠執行 SSO 登入。如需詳細資訊，請參閱[設定 以 AWS CLI 搭配 CodeCatalyst 使用](set-up-cli.md)。
     + 修改本機 SSH 組態，並新增使用 SSH 連線至開發環境所需的組態。
     + 在 SSH 用戶端用來連線至開發環境的`~/.aws/codecatalyst-dev-env`目錄中新增指令碼。此指令碼會呼叫 [CodeCatalyst StartDevEnvironmentSession API](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_StartDevEnvironmentSession.html)，並使用 AWS Systems Manager Session Manager 外掛程式與開發環境建立工作階段，本機 SSH 用戶端會使用此 AWS Systems Manager 工作階段安全地連線至遠端開發環境。
   + 使用第二個命令使用 AWS SSO 登入 Amazon CodeCatalyst。此命令會請求和擷取登入資料，以便 `~/.aws/codecatalyst-dev-env`目錄中的指令碼可以呼叫 [CodeCatalyst StartDevEnvironmentSession API](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_StartDevEnvironmentSession.html)。每次您的登入資料過期時，都應執行此命令。當您在 modal( ssh <destination>) 中執行最後一個命令時，如果您的登入資料已過期，或尚未依照此步驟中的指示執行 SSO 登入，則會收到錯誤。
   + 使用第三個命令，使用 SSH 連線到您指定的開發環境。此命令具有下列結構：

     ```
     ssh codecatalyst-dev-env=<space-name>=<project-name>=<dev-environment-id>
     ```

     您也可以使用此命令來執行 SSH 用戶端允許的其他動作，例如連接埠轉送或上傳和下載檔案：
     + 連接埠轉送：

       ```
       ssh -L <local-port>:127.0.0.1:<remote-port> codecatalyst-dev-env=<space-name>=<project-name>=<dev-environment-id>
       ```
     + 將檔案上傳至開發環境中的主目錄：

       ```
       scp -O </path-to-local-file> codecatalyst-dev-env=<space-name>=<project-name>=<dev-environment-id>:</path-to-remote-file-or-directory>
       ```