當本地裝置為macOS或Windows 10/11,可直接使用系統內建的OpenSSH命令列工具串連Linux執行個體。此外,本地Windows裝置也可以通過Xshell工具串連執行個體,兩種方式均支援密碼或金鑰組認證。
推薦通過Workbench串連阿里雲上的執行個體,該工具可直接通過瀏覽器使用、支援免密登入,相比使用OpenSSH、Xshell更便捷。
適用範圍
執行個體作業系統為Linux。
執行個體已綁定固定公網IP或Elastic IP Address。
方式一:使用OpenSSH用戶端(命令列)
OpenSSH是macOS和新版Windows系統內建的標準SSH用戶端,通過命令列即可快速串連。
準備工作
執行個體公網IP地址:在ECS控制台-執行個體,找到目標執行個體進入詳情,在配置資訊地區找到公網IP。
配置安全性群組:為執行個體關聯的安全性群組配置入方向規則,允許本地IP通過SSH(22連接埠)訪問執行個體。
操作步驟
Windows 10/11
密碼登入
開啟PowerShell
按
Win+R輸入powershell後按Enter鍵進入PowerShell命令列介面。發起遠端連線
ssh <執行個體登入名稱>@<執行個體公網IP地址>樣本:
ssh root@47.98.xxx.xxx(首次串連時)驗證主機指紋
當首次串連一台新的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])?輸入密碼,進入執行個體
輸入密碼時螢幕不會顯示字元,這是正常現象,輸入完成後按斷行符號即可。
密碼驗證通過後,將看到類似下方的歡迎資訊,並且命令提示字元會變為
[<執行個體登入名稱>@<hostname> ~]$的形式。表示已成功登入到ECS執行個體。Welcome to Alibaba Cloud Elastic Compute Service ! [root@Connect-Instance-Example ~]#
金鑰組登入
開啟PowerShell
按
Win+R輸入powershell後按Enter鍵進入PowerShell命令列介面。發起遠端連線
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。(首次串連時)驗證主機指紋
當首次串連一台新的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])?驗證密鑰,進入執行個體
當密鑰驗證通過後,將看到類似下方的歡迎資訊,並且命令提示字元會變為
[<執行個體登入名稱>@<hostname> ~]$的形式。表示已成功登入到ECS執行個體。Welcome to Alibaba Cloud Elastic Compute Service ! [root@Connect-Instance-Example ~]#
macOS
密碼登入
開啟終端(Terminal)。
發起遠端連線。
ssh <執行個體登入名稱>@<執行個體公網IP地址>樣本:
ssh root@47.98.xxx.xxx(首次串連時)驗證主機指紋
當首次串連一台新的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])?輸入密碼,進入執行個體
輸入密碼時螢幕不會顯示字元,這是正常現象,輸入完成後按斷行符號即可。
密碼驗證通過後,將看到系統的登入歡迎資訊(具體內容因作業系統鏡像而異),並且命令提示字元會變為
[<執行個體登入名稱>@<hostname> ~]$的形式。表示已成功登入到ECS執行個體。Welcome to Alibaba Cloud Elastic Compute Service ! [root@Connect-Instance-Example ~]#
金鑰組登入
開啟終端(Terminal)。
發起遠端連線
# 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為私密金鑰檔案路徑。(首次串連時)驗證主機指紋
當首次串連一台新的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])?驗證密鑰,進入執行個體
當密鑰驗證通過後,將看到類似下方的歡迎資訊,並且命令提示字元會變為
[<username>@<hostname> ~]$的形式。表示已成功登入到ECS執行個體。Welcome to Alibaba Cloud Elastic Compute Service ! [root@Connect-Instance-Example ~]#
方式二:使用Xshell用戶端(僅適用於Windows)
Xshell是一款SSH用戶端工具,用於在Windows系統遠程登入和管理Linux伺服器。
準備工作
下載並安裝Xshell:訪問 Xshell 官方網站下載並安裝最新用戶端。
執行個體公網IP地址:在ECS控制台-執行個體,找到目標執行個體進入詳情,在配置資訊地區找到公網IP。
配置安全性群組:為執行個體關聯的安全性群組配置入方向規則,允許本地IP通過SSH(22連接埠)訪問執行個體。
操作步驟
啟動 Xshell 並建立會話
開啟 Xshell 應用程式。
在彈出的會話視窗中,單擊建立(或通過功能表列)。
配置串連基本資料
單擊左側導覽列下的串連,完成配置:
名稱:為會話取一個易於識別的名稱(例如:My-Web-Server)。
協議:保持預設的SSH。
主機:輸入執行個體的公網 IP。
連接埠號碼:保持預設的22。
配置使用者身分識別驗證
在左側導覽列中,單擊使用者身分識別驗證。
密碼登入
方法:選擇Password。
使用者名稱:輸入伺服器的登入名稱(如root)。
密碼:輸入對應的登入密碼。
金鑰組登入
使用者名稱:輸入伺服器的登入名稱(如root)。
方法:選擇Public Key,並按以下步驟配置使用者密鑰:
單擊設定...。
在彈出的視窗中,選擇密鑰檔案選項,單擊使用者密鑰配置項後的...,單擊匯入...,選擇本機存放區的
.pem尾碼私密金鑰檔案。匯入成功後,選中該密鑰,單擊確定。
(可選)如密鑰檔案設定了密碼,則需要提供密碼。
串連到伺服器
完成上述配置後,單擊串連。
(首次串連時)驗證主機密鑰
當首次串連一台新的ECS時,Xshell會彈出SSH安全警告視窗,顯示主機密鑰指紋。
這是SSH的一項安全機制,為確保安全,請擷取執行個體的主機密鑰指紋後比對差異。若不一致,則說明正在遭受中間人攻擊,請切換到安全的網路環境下重新串連執行個體。
確認無誤後,單擊接受並儲存,這樣以後串連就不會再彈出此提示。
串連到伺服器
當看到命令提示字元出現以下內容時,表示已經通過驗證,成功串連。
Welcome to Alibaba Cloud Elastic Compute Service ! [root@Connect-Instance-Example ~]#
應用於生產環境
在實際生產環境中,建議通過以下操作提升遠端連線安全。
主動驗證主機指紋,防範中間人攻擊
在第一次串連到執行個體時,應先驗證執行個體的主機密鑰指紋,確認串連的是目標執行個體而非攻擊者的伺服器。
禁用密碼登入,強制使用金鑰組
金鑰組認證遠比密碼認證安全,可降低暴力破解風險。操作如下:
為執行個體綁定金鑰組。
禁用密碼登入:登入執行個體,編輯
/etc/ssh/sshd_config設定檔,找到PasswordAuthentication,修改為PasswordAuthentication no,重啟SSH服務生效配置。
修改預設SSH連接埠
將預設22連接埠改為其他數值較大的非標準連接埠(如2222),可有效減少被惡意掃描。
允許存取新連接埠: 在執行個體所屬的安全性群組中添加入方向規則,允許存取新的連接埠(如2222)
修改SSH服務連接埠:登入執行個體,編輯
/etc/ssh/sshd_config設定檔,將#Port 22修改為Port 2222。重啟SSH服務生效配置。使用新連接埠串連: 此後使用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服務的連接埠,需調整為實際連接埠。
如何驗證執行個體的主機密鑰指紋?
首次串連執行個體時,會提示驗證主機密鑰指紋,確認方法如下:
控制台
進入ECS控制台-執行個體,在左上方選擇地區與資源群組。
找到對應執行個體後,單擊,然後找到
BEGIN SSH HOST KEY FINGERPRINTS,會顯示所有主機指紋。
請仔細核對本地用戶端提示的指紋(如上例中的 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檔案,可以為伺服器設定別名,簡化串連命令。找到或建立config檔案
Windows 10/11
config設定檔預設路徑為
C:\Users\YourUsername\.ssh\config。若不存在,需手動建立。使用時,請替換
YourUsername為當前Windows的使用者名稱。macOS
config設定檔預設路徑為~/.ssh/config。若不存在,需手動建立。編輯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:私密金鑰檔案的絕對路徑。
使用別名快速串連
儲存
config檔案後,可以直接使用別名來串連執行個體。# 直接使用別名串連,SSH會自動讀取config中的IP、使用者名稱和密鑰資訊 ssh web-server
串連時出現
Connection timed out或提示連線逾時?表示用戶端無法串連到伺服器。排查順序:
檢查公網IP是否正確。
檢查安全性群組是否允許存取連接埠。
檢查執行個體是否處於運行狀態。
使用ECS控制台-自助問題排查排查異常。
密碼輸入正確,但提示
Permission denied, please try again表示伺服器拒絕了密碼。排查順序:
在控制台重設密碼後重試。
使用ECS控制台-自助問題排查排查異常。
使用金鑰組登入時提示
Permission denied (publickey)?表示伺服器拒絕了密鑰。排查順序:
在控制台重新綁定金鑰組後重試。
檢查私密金鑰檔案路徑及是否與執行個體匹配。
(macOS系統下)檢查私密金鑰檔案許可權是否為
400或600。使用ECS控制台-自助問題排查排查異常。
通過SSH命令登入執行個體時,提示
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!這是SSH的安全機制:在第一次串連執行個體後,會記住主機密鑰指紋,後續串連時若指紋不一致,會提示該錯誤。可能是由於執行過更換系統硬碟、更換作業系統、刪除了執行個體系統中的主機密鑰檔案等操作。
解決辦法:驗證執行個體的主機密鑰指紋,若無誤,執行以下命令,刪除本地儲存的主機密鑰指紋。
ssh-keygen -R <執行個體公網IP地址>