如何使用 SSH 跳板主機訪問遠端伺服器?


簡介

遠端伺服器,也稱為雲伺服器或虛擬專用伺服器 (VPS),是在異地託管的計算機器,通常由第三方提供商託管。它們允許儲存和處理大量資料,並且可以透過網際網路連線從世界任何地方訪問。近年來,由於遠端伺服器的可擴充套件性和成本效益,它們變得越來越受歡迎。

但是,由於遠端伺服器的距離和缺乏與本地網路的直接連線,訪問它可能具有挑戰性。這就是 SSH 跳板主機發揮作用的地方:它們充當您的本地計算機和遠端伺服器之間的安全中介,允許您安全地訪問它,而無需洩露任何敏感資訊。

設定 SSH 跳板主機

SSH 跳板主機提供了一種安全的方式來訪問無法從您的本地機器直接訪問的遠端伺服器。要使用跳板主機,您必須首先在 Linux 機器上設定它並正確配置它。

在 Linux 機器上設定跳板主機的步驟

要在 Linux 機器上建立 SSH 跳板主機,您需要執行以下步驟 -

  • 首先,確保您的 Linux 機器已安裝 OpenSSH。

  • 您可以透過執行命令 `sudo apt-get install openssh-server` 來實現。

  • 接下來,導航到 `/etc/ssh` 目錄並使用命令 `sudo cp sshd_config sshd_config_backup` 建立 `sshd_config` 檔案的備份副本。

$ cd /etc/ssh/
$ sudo cp sshd_config sshd_config_backup
  • 然後使用您喜歡的文字編輯器(例如 Nano 或 Vim)編輯 `sshd_config` 檔案。查詢以 `#Port 22` 開頭的行,刪除 # 符號,並將 22 更改為另一個埠號(例如,1234)。

  • 在 `sshd_config` 的末尾新增這兩行 -

AllowAgentForwarding yes 
GatewayPorts yes  
  • 儲存並關閉檔案。

  • 使用命令 `sudo systemctl restart ssh` 重啟 SSH。

您現在已在 Linux 機器上設定了 SSH 跳板主機。

如何配置跳板主機的防火牆設定的說明

在 Linux 機器上建立 SSH 跳板主機後,必須確保其防火牆設定已正確配置。要允許透過埠 1234(或您選擇的任何埠)訪問,請執行以下步驟 -

  • 透過執行以下命令檢查 ufw(Uncomplicated Firewall)是否已安裝 -

sudo apt-get install ufw  
  • 使用以下命令允許對埠 1234 的傳入連線 -

sudo ufw allow 1234/tcp  
  • 使用以下命令啟用防火牆 -

sudo ufw enable  
  • 透過執行以下命令驗證您的規則是否已應用 -

sudo ufw status numbered  

這將顯示所有防火牆規則的編號列表,以及它們相應的狀態和埠。透過執行這些步驟,您現在應該已在 Linux 機器上設定了一個跳板主機,並正確配置了其防火牆設定。

透過跳板主機配置遠端伺服器以進行訪問

透過跳板主機配置遠端伺服器以進行訪問的步驟

在我們使用跳板主機遠端訪問伺服器之前,我們需要配置伺服器以允許來自跳板主機的連線。為此,我們需要編輯遠端伺服器上的 SSH 配置檔案。首先,使用 SSH 和您的使用者名稱和密碼連線到遠端伺服器。

然後使用您喜歡的文字編輯器開啟位於 /etc/ssh/sshd_config 的 SSH 配置檔案。在此配置檔案中,搜尋包含“AllowUsers”或“AllowGroups”的行。

如果這些行中的任何一行存在於檔案中,請在其後新增您的使用者名稱或組名,並用空格分隔。接下來,搜尋包含“PermitRootLogin”的行,並將它的值設定為“no”。

PermitRootLogin no

這是一項重要的安全措施,因為它確保沒有人可以直接以 root 身份登入到您的遠端伺服器。相反,如果需要,您可以在稍後使用 sudo 許可權。

透過在 Vim 中鍵入“:wq”或在 Nano 中鍵入“:x”來儲存並退出 SSH 配置檔案。透過執行“systemctl restart ssh”重新啟動遠端伺服器上的 SSH 服務。

如何將跳板主機的公鑰新增到遠端伺服器的授權金鑰檔案中的說明

下一步是將我們的跳板主機的公鑰新增到我們的遠端伺服器的授權金鑰檔案。這將允許我們使用 SSH 透過跳板主機訪問遠端伺服器時進行身份驗證。

首先,如果您尚未這樣做,請在您的本地機器上生成一個 RSA 金鑰對。您可以透過執行以下命令來實現 -

ssh-keygen -t rsa  

生成金鑰對後,使用以下命令將其公鑰 (id_rsa.pub) 複製到剪貼簿 -

pbcopy < ~/.ssh/id_rsa.pub  

接下來,使用 SSH 和您的使用者名稱和密碼連線到遠端伺服器。

連線後,在遠端伺服器上的 ~/.ssh 目錄中建立一個名為 authorized_keys 的新檔案(如果該檔案尚不存在)。使用您喜歡的文字編輯器開啟此檔案,並將跳板主機的公鑰貼上到其中,方法是從剪貼簿貼上。

儲存並退出 authorized_keys 檔案。現在您可以關閉到遠端伺服器的 SSH 連線並測試透過跳板主機訪問它。

透過跳板主機連線到遠端伺服器

使用 SSH 和跳板主機作為中介連線到遠端伺服器的步驟

設定跳板主機並配置遠端伺服器後,您現在可以使用 SSH 和跳板主機作為中介連線到遠端伺服器。為此,在本地機器上開啟一個終端並輸入以下命令 -

ssh -J [user@]jump-host [user@]destination-host 

將 ```[user@]jump-host``` 替換為跳板主機的使用者名稱和主機名或 IP 地址。將 ```[user@]destination-host``` 替換為遠端伺服器的使用者名稱、主機名或 IP 地址。

如何使用 SSH 埠轉發的說明

SSH 埠轉發允許您透過加密的 SSH 連線將網路流量從一臺機器轉發到另一臺機器。這對於訪問在無法從本地機器直接訪問的遠端伺服器上執行的服務很有用。

要使用 SSH 設定埠轉發,您需要使用 `-L` 選項,後跟兩個用冒號分隔的引數。第一個引數指定將在本地機器上轉發的埠號。

第二個引數指定網路流量應轉發到遠端機器上的哪個位置。例如,如果您想將本地機器上埠 8080 的流量轉發到 192.168.1.100 上遠端 Web 伺服器上的埠 80,您可以使用以下命令 -

ssh -L 8080:192.168.1.100:80 [user@]jump-host 

這將在您的本地機器和跳板主機之間建立一個加密隧道,將從本地機器上的埠 8080 轉發的流量透過此隧道傳送,然後轉發到 192.168.1.100 上遠端 Web 伺服器的埠 80。

使用 SSH 進行埠轉發可能是一個強大的工具,但務必瞭解這樣做的安全隱患。始終確保您信任要將流量轉發到的機器,並考慮使用其他安全措施,例如 VPN 或防火牆。

結論

在本指南中,我們討論瞭如何使用 SSH 跳板主機訪問遠端伺服器。我們首先解釋了什麼是遠端伺服器以及為什麼可能需要訪問它。

接下來,我們介紹了 SSH 跳板主機的概念並解釋了它的用途。然後,我們提供了在 Linux 機器上設定 SSH 跳板主機、透過跳板主機配置遠端伺服器以進行訪問以及使用 SSH 和埠轉發透過跳板主機連線到遠端伺服器的分步說明。

更新於:2023 年 8 月 23 日

2K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.