SSH 遠端登入是什麼?
SSH(Secure Shell)是一種加密網絡協議,用於在不安全的網絡上安全地操作網絡服務,最主要的應用是遠端登入與命令列指令執行,是現今管理伺服器、交換機、路由器等設備的標準方式。本頁講解 SSH 的協議架構、與 Telnet 的分別、認證方式,以及安全使用建議。
SSH 的定義與協議架構
SSH 的設計目標,是在任何不可信任的網絡上建立一條安全通道:即使數據途經的網絡被竊聽,攻擊者亦無法讀取或篡改會話內容。SSH 第二版的協議架構由 IETF 在 RFC 4251《The Secure Shell (SSH) Protocol Architecture》(2006 年)及相關標準文件定義,分為三層:
| 協議層 | 職責 |
| 傳輸層協議 | 負責伺服器身份驗證、加密、完整性保護,建立安全通道 |
| 用戶認證協議 | 在安全通道之上驗證用戶身份(密碼、公開金鑰等方式) |
| 連線協議 | 把安全通道多路復用為多條邏輯通道,承載終端會話、檔案傳輸、連接埠轉發等 |
正因為這種分層設計,SSH 不止是遠端登入工具:SFTP 檔案傳輸、加密通道轉發等功能均建基於同一套架構之上。SFTP 在監控系統的應用可參考FTP/SFTP 上傳功能一頁。
SSH 與 Telnet 的分別
Telnet 是更早期的遠端登入協議,功能相似,但全部內容——包括帳號密碼——均以明文傳輸,在網絡上可被直接截取。SSH 正是為取代這類明文協議而生:
| 比較項目 | SSH | Telnet |
| 傳輸加密 | 全會話加密 | 明文,可被截取 |
| 伺服器身份驗證 | 有,以主機金鑰防止中間人冒充 | 無 |
| 認證方式 | 密碼、公開金鑰等多種 | 明文密碼 |
| 附加功能 | SFTP 檔案傳輸、連接埠轉發 | 無 |
| 現代定位 | 遠端管理標準 | 應停用,僅限隔離環境除錯 |
工程實務上,網絡設備出廠若同時提供 Telnet 與 SSH 管理介面,交付前應停用 Telnet,只保留 SSH。
密碼認證與金鑰認證
SSH 支援多種用戶認證方式,最常用的是密碼認證與公開金鑰認證。密碼認證簡單直接,但受暴力破解與密碼外洩威脅;金鑰認證則使用一對公鑰與私鑰——公鑰放置在伺服器,私鑰由管理員保管,登入時以密碼學運算證明身份,無法以猜測方式攻破。
重要系統的建議做法:啟用金鑰認證並為私鑰加設保護密語,確認可正常登入後停用密碼認證,令暴力破解完全失效。