切換語言為:簡體

SSH安全遠程登錄與埠轉發

  • 爱糖宝
  • 2024-06-27
  • 2075
  • 0
  • 0

在今天這個雲端計算盛行的時代,SSH(Secure Shell)幾乎成了每個開發者必備技能之一。SSH 不僅可以讓我們安全地遠程登錄到伺服器,執行操作,還支援如檔案傳輸、埠轉發等高階功能。

本文將用淺顯易懂的語言,帶你深入瞭解 SSH 的兩個常用功能:使用金鑰登入透過 SSH 實現埠轉發

使用金鑰登入

傳統上,我們習慣使用使用者名稱和密碼進行 SSH 登入。但在安全性要求更高的環境下,使用金鑰登入是更推薦的選擇。

首先,我們需要在客戶端生成一對金鑰(一個公開的「公鑰」和一個私有的「私鑰」)。接下來,將公鑰配置到伺服器上,然後利用客戶端的私鑰進行認證登入。這樣,即使有人知道了我們的伺服器 IP 和使用者,沒有私鑰也無法登入。

首次設定和登入

  1. 生成金鑰對 (如果已有金鑰對可跳過此步驟)。

    開啟終端執行:

ssh-keygen

  1. 登入到你的伺服器 ,並將公鑰內容新增到 ~/.ssh/authorized_keys 中。

  2. 使用金鑰登入

ssh root@{你的伺服器公網 IP} -i ~/.ssh/<your-pem-name>.pem

這裏的  -i 引數用於指定私鑰檔案的路徑。

為簡化登入過程,我們可以編輯 ssh 配置檔案:

在客戶端編輯 vim ~/.ssh/config 檔案:

# PubkeyAuthentication yes 代表使用金鑰方式登入
# IdentityFile 用於指定金鑰檔案路徑

Host {你的雲伺服器公網 IP}
    PubkeySerialization yes
    IdentificationFile ~/.ssh/<your-pem-name>.pem

配置後,直接使用下面的命令登入:

ssh root@{你的雲伺服器公網 IP}

透過 SSH 實現埠轉發

在進行資料分析、Web 開發等場景時,我們經常需要將遠端伺服器上的服務埠對映到本地埠,以便本地訪問。SSH 的埠轉發功能讓這一需求得以簡單實現。

埠轉發的基本用法

假設你想要訪問位於 192.168.0.101 伺服器上的 9200 埠的服務,可以透過 SSH 將該埠對映到本地機器的 9201 埠上:

ssh -L -N 9201:0.0.0.0:9200 alex@192.168.0.101

這裏的 -L 引數指定了本地埠轉發,-N 參數列示不執行遠端命令。

埠轉發的高階用法

如果 SSH 服務的預設埠 22 被更改了,比如改爲了 2202,你可以透過 -p 引數指定 SSH 連線的埠:

ssh -L -N 9201:0.0.0.0:9200 -p 2202 alex@192.168.0.101

埠轉發的應用場景

埠轉發可以用於多種場景,比如:

  • 訪問位於內網中的資料庫或 Web 服務。

  • 繞過防火牆訪問某些服務。

  • 為遠端服務提供一個安全的本地訪問點。

透過上面的分享,相信你已經對 SSH 的金鑰登入和埠轉發功能有了初步的瞭解。這兩個功能在日常開發中非常有用,掌握它們將大大提高你的工作效率。

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.