在Linux中,什麼是SSH,並且如何使用它?

黄嘉波發表於2024-05-01

SSH,全稱為Secure Shell,是一種安全的網路協議,旨在為網路服務提供安全的遠端登入、檔案傳輸以及其他網路服務。它透過加密資料傳輸,提供認證機制,保證了在網路中傳輸的資料不被竊聽或篡改,從而在不安全的網路環境中實現了安全的連線。SSH協議主要有兩個版本,SSH-1和SSH-2,其中SSH-2由於其更強的安全性,成為當前的標準和推薦使用的版本。

1. SSH的主要功能包括:
  1. 遠端登入:允許使用者從本地電腦保安地登入到遠端伺服器上,執行命令和管理遠端系統。
  2. 檔案傳輸:透過SCP(Secure Copy Protocol)或SFTP(Secure File Transfer Protocol)安全地在兩臺計算機之間複製檔案。
  3. 埠轉發:可以在本地和遠端系統之間建立安全的隧道,用於轉發其他型別的服務,如HTTP或資料庫連線。
  4. X11轉發:允許在遠端伺服器上執行圖形應用程式,並將其圖形介面顯示在本地機器上。
2. 如何使用SSH:
1. 安裝SSH客戶端和伺服器

大多數Linux發行版預設已經安裝了OpenSSH客戶端(ssh命令),但如果你需要作為SSH伺服器接受連線,則需要安裝OpenSSH伺服器(openssh-server包)。

2. 基本使用方法
  1. 遠端登入

    ssh 使用者名稱@遠端主機地址
    

    例如:

    ssh root@example.com
    

    登入時,你可能需要輸入密碼或使用金鑰對進行身份驗證。

  2. 使用特定埠

    ssh -p 埠號 使用者名稱@遠端主機地址
    

    例如,如果SSH服務執行在非標準埠2222上:

    ssh -p 2222 user@example.com
    
  3. 使用金鑰認證

    • 在本地生成SSH金鑰對(如果尚未生成):

      ssh-keygen
      
    • 將公鑰複製到遠端伺服器:

      ssh-copy-id 使用者名稱@遠端主機地址
      

      此後,再次嘗試登入時,通常無需輸入密碼。

  4. 檔案傳輸

    • 使用SCP:

      scp 本地檔案路徑 使用者名稱@遠端主機地址:遠端目錄路徑
      
    • 使用SFTP:

      sftp 使用者名稱@遠端主機地址
      
  5. 其他高階用法

    • 埠轉發:如將遠端主機的8080埠對映到本地的8080埠:

      ssh -L 8080:localhost:8080 使用者名稱@遠端主機地址
      
    • X11轉發:在命令後加上 -X-Y 選項即可:

      ssh -X 使用者名稱@遠端主機地址
      

綜上所述,SSH成為了系統管理員和開發人員進行遠端管理和開發的不可或缺的工具。

相關文章