全部產品
Search
文件中心

Elastic Compute Service:使用OpenSSH/Xshell遠端連線Linux執行個體

更新時間:Sep 30, 2025

當本地裝置為macOS或Windows 10/11,可直接使用系統內建的OpenSSH命令列工具串連Linux執行個體。此外,本地Windows裝置也可以通過Xshell工具串連執行個體,兩種方式均支援密碼或金鑰組認證。

重要

推薦通過Workbench串連阿里雲上的執行個體,該工具可直接通過瀏覽器使用、支援免密登入,相比使用OpenSSH、Xshell更便捷。

適用範圍

方式一:使用OpenSSH用戶端(命令列)

OpenSSH是macOS和新版Windows系統內建的標準SSH用戶端,通過命令列即可快速串連。

準備工作

操作步驟

Windows 10/11

密碼登入

  1. 開啟PowerShell

    Win+R輸入powershell後按Enter鍵進入PowerShell命令列介面。

  2. 發起遠端連線

    ssh <執行個體登入名稱>@<執行個體公網IP地址>
    樣本:ssh root@47.98.xxx.xxx
  3. (首次串連時)驗證主機指紋

    當首次串連一台新的ECS時,會顯示類似下方的資訊,提示驗證主機密鑰指紋。

    這是SSH的一項安全機制,為確保安全,請擷取執行個體的主機密鑰指紋後比對差異。若不一致,則說明正在遭受中間人攻擊,請切換到安全的網路環境下重新串連執行個體。

    確認主機指紋無誤後,輸入yes並按斷行符號。

    The authenticity of host '47.98.xxx.xxx (47.98.xxx.xxx)' can't be established.
    ED25519 key fingerprint is SHA256:AbCdEf123456...
    This key is not known by any other names.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? 
  4. 輸入密碼,進入執行個體

    輸入密碼時螢幕不會顯示字元,這是正常現象,輸入完成後按斷行符號即可。

    密碼驗證通過後,將看到類似下方的歡迎資訊,並且命令提示字元會變為 [<執行個體登入名稱>@<hostname> ~]$ 的形式。表示已成功登入到ECS執行個體。

    Welcome to Alibaba Cloud Elastic Compute Service !
    
    [root@Connect-Instance-Example ~]#

金鑰組登入

  1. 開啟PowerShell

    Win+R輸入powershell後按Enter鍵進入PowerShell命令列介面。

  2. 發起遠端連線

    ssh -i /path/to/private_key.pem <執行個體登入名稱>@<執行個體公網IP地址>
    樣本:ssh -i /path/to/private_key.pem root@47.98.xxx.xxx。其中/path/to/private_key.pem為私密金鑰檔案路徑,例如C:\Users\Administrator\Downloads\private_key.pem
  3. (首次串連時)驗證主機指紋

    當首次串連一台新的ECS時,會顯示類似下方的資訊,提示驗證主機密鑰指紋。

    這是SSH的一項安全機制,為確保安全,請擷取執行個體的主機密鑰指紋後比對差異。若不一致,則說明正在遭受中間人攻擊,請切換到安全的網路環境下重新串連執行個體。

    確認主機指紋無誤後,輸入yes並按斷行符號。

    The authenticity of host '47.98.xxx.xxx (47.98.xxx.xxx)' can't be established.
    ED25519 key fingerprint is SHA256:AbCdEf123456...
    This key is not known by any other names.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? 
  4. 驗證密鑰,進入執行個體

    當密鑰驗證通過後,將看到類似下方的歡迎資訊,並且命令提示字元會變為 [<執行個體登入名稱>@<hostname> ~]$ 的形式。表示已成功登入到ECS執行個體。

    Welcome to Alibaba Cloud Elastic Compute Service !
    
    [root@Connect-Instance-Example ~]#

macOS

密碼登入

  1. 開啟終端(Terminal)

  2. 發起遠端連線。

    ssh <執行個體登入名稱>@<執行個體公網IP地址>
    樣本:ssh root@47.98.xxx.xxx
  3. (首次串連時)驗證主機指紋

    當首次串連一台新的ECS時,會顯示類似下方的資訊,提示驗證主機密鑰指紋。

    這是SSH的一項安全機制,為確保安全,請擷取執行個體的主機密鑰指紋後比對差異。若不一致,則說明正在遭受中間人攻擊,請切換到安全的網路環境下重新串連執行個體。

    確認主機指紋無誤後,輸入yes並按斷行符號。

    The authenticity of host '47.98.xxx.xxx (47.98.xxx.xxx)' can't be established.
    ED25519 key fingerprint is SHA256:AbCdEf123456...
    This key is not known by any other names.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? 
  4. 輸入密碼,進入執行個體

    輸入密碼時螢幕不會顯示字元,這是正常現象,輸入完成後按斷行符號即可。

    密碼驗證通過後,將看到系統的登入歡迎資訊(具體內容因作業系統鏡像而異),並且命令提示字元會變為 [<執行個體登入名稱>@<hostname> ~]$ 的形式。表示已成功登入到ECS執行個體。

    Welcome to Alibaba Cloud Elastic Compute Service !
    
    [root@Connect-Instance-Example ~]#

金鑰組登入

  1. 開啟終端(Terminal)

  2. 發起遠端連線

    # chmod 400: 為私密金鑰檔案設定僅所有者可讀的許可權,這是SSH用戶端的安全要求
    chmod 400 /path/to/private_key.pem
    ssh -i /path/to/private_key.pem <執行個體登入名稱>@<執行個體公網IP地址>
    樣本:ssh -i /path/to/private_key.pem root@47.98.xxx.xxx。其中/path/to/private_key.pem為私密金鑰檔案路徑。
  3. (首次串連時)驗證主機指紋

    當首次串連一台新的ECS時,會顯示類似下方的資訊,提示驗證主機密鑰指紋。

    這是SSH的一項安全機制,為確保安全,請擷取執行個體的主機密鑰指紋後比對差異。若不一致,則說明正在遭受中間人攻擊,請切換到安全的網路環境下重新串連執行個體。

    確認主機指紋無誤後,輸入yes並按斷行符號。

    The authenticity of host '47.98.xxx.xxx (47.98.xxx.xxx)' can't be established.
    ED25519 key fingerprint is SHA256:AbCdEf123456...
    This key is not known by any other names.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? 
  4. 驗證密鑰,進入執行個體

    當密鑰驗證通過後,將看到類似下方的歡迎資訊,並且命令提示字元會變為 [<username>@<hostname> ~]$ 的形式。表示已成功登入到ECS執行個體。

    Welcome to Alibaba Cloud Elastic Compute Service !
    
    [root@Connect-Instance-Example ~]#

方式二:使用Xshell用戶端(僅適用於Windows)

Xshell是一款SSH用戶端工具,用於在Windows系統遠程登入和管理Linux伺服器。

準備工作

操作步驟

  1. 啟動 Xshell 並建立會話

    1. 開啟 Xshell 應用程式。

    2. 在彈出的會話視窗中,單擊建立(或通過功能表列檔案 > 建立)。

  2. 配置串連基本資料

    單擊左側導覽列下的串連,完成配置:

    • 名稱:為會話取一個易於識別的名稱(例如:My-Web-Server)。

    • 協議:保持預設的SSH

    • 主機:輸入執行個體的公網 IP。

    • 連接埠號碼:保持預設的22

  3. 配置使用者身分識別驗證

    在左側導覽列中,單擊使用者身分識別驗證

    密碼登入

    1. 方法:選擇Password

    2. 使用者名稱:輸入伺服器的登入名稱(如root)。

    3. 密碼:輸入對應的登入密碼。

    金鑰組登入

    1. 使用者名稱:輸入伺服器的登入名稱(如root)。

    2. 方法:選擇Public Key,並按以下步驟配置使用者密鑰:

      1. 單擊設定...

      2. 在彈出的視窗中,選擇密鑰檔案選項,單擊使用者密鑰配置項後的...,單擊匯入...,選擇本機存放區的.pem尾碼私密金鑰檔案。

      3. 匯入成功後,選中該密鑰,單擊確定

      4. (可選)如密鑰檔案設定了密碼,則需要提供密碼

  4. 串連到伺服器

    完成上述配置後,單擊串連

  5. (首次串連時)驗證主機密鑰

    當首次串連一台新的ECS時,Xshell會彈出SSH安全警告視窗,顯示主機密鑰指紋。

    這是SSH的一項安全機制,為確保安全,請擷取執行個體的主機密鑰指紋後比對差異。若不一致,則說明正在遭受中間人攻擊,請切換到安全的網路環境下重新串連執行個體。

    確認無誤後,單擊接受並儲存,這樣以後串連就不會再彈出此提示。

  6. 串連到伺服器

    當看到命令提示字元出現以下內容時,表示已經通過驗證,成功串連。

    Welcome to Alibaba Cloud Elastic Compute Service !
    
    [root@Connect-Instance-Example ~]#

應用於生產環境

在實際生產環境中,建議通過以下操作提升遠端連線安全。

  • 主動驗證主機指紋,防範中間人攻擊

    在第一次串連到執行個體時,應先驗證執行個體的主機密鑰指紋,確認串連的是目標執行個體而非攻擊者的伺服器。

  • 禁用密碼登入,強制使用金鑰組

    金鑰組認證遠比密碼認證安全,可降低暴力破解風險。操作如下:

    1. 為執行個體綁定金鑰組

    2. 禁用密碼登入:登入執行個體,編輯/etc/ssh/sshd_config設定檔,找到PasswordAuthentication,修改為PasswordAuthentication no,重啟SSH服務生效配置。

  • 修改預設SSH連接埠

    將預設22連接埠改為其他數值較大的非標準連接埠(如2222),可有效減少被惡意掃描。

    1. 允許存取新連接埠: 在執行個體所屬的安全性群組中添加入方向規則,允許存取新的連接埠(如2222)

    2. 修改SSH服務連接埠:登入執行個體,編輯/etc/ssh/sshd_config設定檔,將#Port 22修改為Port 2222。重啟SSH服務生效配置。

    3. 使用新連接埠串連: 此後使用ssh命令時,需通過-p指定ssh的服務連接埠,例如:ssh -p 2222 username@instance_ip

  • 僅授權可信的IP訪問執行個體

    修改安全性群組規則安全性群組規則,僅允許本機IP或其他受信任的IP訪問執行個體SSH服務,攔截未知主機訪問執行個體。

常見問題

  • 如何配置安全性群組規則以允許存取22連接埠?

    在執行個體所在安全性群組添加如下安全性群組規則:

    授權策略

    協議

    訪問來源

    訪問目的(本執行個體)

    允許

    自訂 TCP

    輸入本地用戶端的公網IP地址。

    重要

    若使用0.0.0.0/0,表示允許任意 IP 訪問遠程服務連接埠,存在安全風險,請謹慎使用。

    SSH(22)

    如果修改了執行個體的SSH服務的連接埠,需調整為實際連接埠。
  • 如何驗證執行個體的主機密鑰指紋?

    首次串連執行個體時,會提示驗證主機密鑰指紋,確認方法如下:

    控制台

    1. 進入ECS控制台-執行個體,在左上方選擇地區與資源群組。

    2. 找到對應執行個體後,單擊image > 擷取執行個體系統日誌,然後找到BEGIN SSH HOST KEY FINGERPRINTS,會顯示所有主機指紋。

      image

      請仔細核對本地用戶端提示的指紋(如上例中的 SHA256:******)是否與日誌中顯示的指紋完全一致。若不一致,則可能正在遭受中間人攻擊,需切換至安全網路環境後重試串連。

      若找不到BEGIN SSH HOST KEY FINGERPRINTS,需進入執行個體內查看主機指紋。

    執行個體內

    使用Workbench登入執行個體後執行以下命令,查看主機密鑰指紋:

    for f in /etc/ssh/ssh_host_*_key.pub; do ssh-keygen -l -f "$f"; done

    輸出樣本:

    1024 SHA256:9C******co root@Connect-Instance-Example (DSA)
    256 SHA256:u6******SU root@Connect-Instance-Example (ECDSA)
    256 SHA256:iQ******jg root@Connect-Instance-Example (ED25519)
    3072 SHA256:8R******64 root@Connect-Instance-Example (RSA)

    請仔細核對本地用戶端提示的指紋(如上例中的 SHA256:******)是否與日誌中顯示的指紋完全一致。若不一致,則可能正在遭受中間人攻擊,需切換至安全網路環境後重試串連。

  • 如何通過SSH的config設定檔簡化串連命令?

    每次串連都輸入完整的ssh -i /path/to/key.pem username@instance_ip命令較為繁瑣。通過在本地建立和配置SSHconfig檔案,可以為伺服器設定別名,簡化串連命令。

    1. 找到或建立config檔案

      Windows 10/11

      config設定檔預設路徑為C:\Users\YourUsername\.ssh\config。若不存在,需手動建立。

      使用時,請替換YourUsername為當前Windows的使用者名稱。

      macOS

      config設定檔預設路徑為~/.ssh/config。若不存在,需手動建立。

    2. 編輯config檔案並添加執行個體資訊

      使用文字編輯器開啟config檔案,添加類似如下的配置。每一段Host配置對應一個伺服器執行個體。

      # 為Web伺服器配置一個別名 "web-server"
      Host web-server
          HostName        47.98.xxx.xxx
          User            root
          Port            22
          (可選)如果使用金鑰組登入,請指定私密金鑰路徑,使用密碼登入請忽略
          IdentityFile    /path/to/your/private_key.pem
      
      # 可以為其他伺服器添加更多配置
      Host other-server
          HostName        8.123.xxx.xxx
          User            ecs-user
          Port            2222
          IdentityFile    ~/.ssh/another_key.pem

      參數說明:

      • Host:伺服器的別名,可自訂。

      • HostName:執行個體的公網IP地址。

      • User:登入使用者名稱。

      • Port:SSH連接埠號碼(預設為22)。

      • IdentityFile:私密金鑰檔案的絕對路徑。

    3. 使用別名快速串連

      儲存config檔案後,可以直接使用別名來串連執行個體。

      # 直接使用別名串連,SSH會自動讀取config中的IP、使用者名稱和密鑰資訊
      ssh web-server
  • 串連時出現Connection timed out或提示連線逾時?

    表示用戶端無法串連到伺服器。排查順序:

    1. 檢查公網IP是否正確。

    2. 檢查安全性群組是否允許存取連接埠。

    3. 檢查執行個體是否處於運行狀態。

    4. 使用ECS控制台-自助問題排查排查異常。

  • 密碼輸入正確,但提示Permission denied, please try again

    表示伺服器拒絕了密碼。排查順序:

    1. 在控制台重設密碼後重試。

    2. 使用ECS控制台-自助問題排查排查異常。

  • 使用金鑰組登入時提示Permission denied (publickey)

    表示伺服器拒絕了密鑰。排查順序:

    1. 在控制台重新綁定金鑰組後重試。

    2. 檢查私密金鑰檔案路徑及是否與執行個體匹配。

    3. (macOS系統下)檢查私密金鑰檔案許可權是否為400600

    4. 使用ECS控制台-自助問題排查排查異常。

  • 通過SSH命令登入執行個體時,提示WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

    這是SSH的安全機制:在第一次串連執行個體後,會記住主機密鑰指紋,後續串連時若指紋不一致,會提示該錯誤。可能是由於執行過更換系統硬碟、更換作業系統、刪除了執行個體系統中的主機密鑰檔案等操作。

    解決辦法:驗證執行個體的主機密鑰指紋,若無誤,執行以下命令,刪除本地儲存的主機密鑰指紋。

    ssh-keygen -R <執行個體公網IP地址>