如何在 Linux 中安裝和配置 OpenSSH 伺服器?


OpenSSH 是一款開源工具,用於在網路上的不同機器之間提供安全加密的通訊。它廣泛用於基於 Linux 的系統中,作為安全訪問和管理遠端伺服器的一種方式。在本文中,我們將討論如何在 Linux 中安裝和配置 OpenSSH 伺服器。

步驟 1:檢查 OpenSSH 是否已安裝

安裝過程的第一步是檢查 OpenSSH 是否已安裝在您的 Linux 機器上。為此,開啟您的終端並鍵入以下命令:

ssh -V

如果 OpenSSH 已安裝,則命令將顯示軟體的版本號。如果未安裝,則命令將顯示錯誤訊息。

步驟 2:安裝 OpenSSH

如果 OpenSSH 未安裝,您可以使用 Linux 發行版的包管理器進行安裝。包名稱可能因您使用的 Linux 發行版而異。以下是使用一些流行的 Linux 發行版安裝 OpenSSH 的命令:

Ubuntu/Debian

sudo apt-get update
sudo apt-get install openssh-server

Fedora/CentOS

sudo yum update
sudo yum install openssh-server

Arch Linux

sudo pacman -S openssh

步驟 3:配置 OpenSSH

安裝 OpenSSH 後,下一步是配置它。OpenSSH 的主配置檔案位於 /etc/ssh/sshd_config。您可以使用 nano 或 vim 等文字編輯器開啟此檔案。在編輯配置檔案之前,請備份該檔案。

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

備份配置檔案後,您可以使用首選的文字編輯器開始編輯原始檔案。一些重要的配置選項包括:

  • - 此選項設定 OpenSSH 將偵聽傳入連線的埠號。預設埠號為 22,但出於安全原因,最好將其更改為其他埠號。

  • PermitRootLogin - 此選項指定是否允許 root 使用者透過 SSH 登入。建議將此選項設定為 no,並建立一個具有管理員許可權的單獨使用者帳戶。

  • PasswordAuthentication - 此選項指定是否允許基於密碼的身份驗證。建議將此選項設定為 no,並改為使用公鑰身份驗證。

  • PubkeyAuthentication - 此選項指定是否允許公鑰身份驗證。建議將此選項設定為 yes。

編輯完配置檔案後,儲存更改並退出編輯器。然後,重新啟動 OpenSSH 伺服器以應用新配置。

sudo systemctl restart sshd

步驟 4:建立 SSH 金鑰

要使用 OpenSSH 的公鑰身份驗證,您需要在本地計算機上生成一對 SSH 金鑰。您可以使用 ssh-keygen 命令生成金鑰。

ssh-keygen -t rsa -b 4096

此命令將生成一對 RSA 金鑰,金鑰長度為 4096 位。金鑰將儲存在 ~/.ssh 目錄中。

步驟 5:將公鑰複製到伺服器

生成 SSH 金鑰後,您需要將公鑰複製到遠端伺服器。您可以使用 ssh-copy-id 命令將公鑰複製到伺服器。

ssh-copy-id username@server-ip-address

將 username 和 server-ip-address 替換為遠端伺服器的使用者名稱和 IP 地址。此命令將提示您輸入遠端伺服器的密碼。輸入密碼後,此命令將把您的公鑰複製到遠端伺服器的 authorized_keys 檔案中。

步驟 6:使用 SSH 金鑰登入

將公鑰複製到伺服器後,您可以使用公鑰身份驗證登入到遠端伺服器。為此,請使用 ssh 命令並使用 -i 選項指定私鑰檔案的位置。

ssh -i ~/.ssh/id_rsa username@server-ip-address

將 username 和 server-ip-address 替換為遠端伺服器的使用者名稱和 IP 地址。ssh 命令將使用您的私鑰對連線進行身份驗證,您將登入到遠端伺服器而無需輸入密碼。

步驟 7:故障排除

如果您在安裝或配置 OpenSSH 期間遇到任何問題,您可以檢查一些內容來解決問題。

檢查 OpenSSH 日誌:OpenSSH 日誌儲存在 /var/log/auth.log 檔案中。您可以使用 tail 命令檢視日誌檔案的最後幾行。

sudo tail -f /var/log/auth.log
  • 檢查防火牆設定 - 如果您無法連線到 OpenSSH 伺服器,請檢查您的防火牆設定,以確保埠 22(或您指定的自定義埠)已開啟。

  • 檢查 SELinux 設定 - 如果您使用的是啟用了 SELinux 的 Linux 發行版,則可能需要修改 SELinux 設定以允許 OpenSSH 正確執行。

除了本文中討論的基本配置選項外,OpenSSH 還提供各種高階選項,可以根據您的特定需求進行自定義。以下是一些有用的 OpenSSH 配置選項的示例:

  • AllowUsers - 此選項指定允許透過 SSH 登入的使用者列表。所有其他使用者都將被拒絕訪問。如果您想將 SSH 訪問許可權限制到特定使用者組,這將非常有用。

  • ClientAliveInterval - 此選項指定 OpenSSH 伺服器在傳送保持活動訊息到客戶端之前的時間間隔(以秒為單位)。如果您使用的是關閉空閒連線的 NAT 或防火牆,這將非常有用。

  • Compression - 此選項指定是否應為透過 SSH 連線傳輸的資料使用壓縮。在速度慢或延遲高的連線上啟用壓縮可以提高效能。

  • X11Forwarding - 此選項指定是否應啟用 X11 轉發。X11 轉發允許在遠端伺服器上執行圖形應用程式並在本地計算機上顯示。

  • TCPKeepAlive - 此選項指定是否應使用 TCP 保持活動。TCP 保持活動用於檢測並關閉已過時或死鎖的連線。

要使用這些選項,只需將它們新增到 /etc/ssh/sshd_config 檔案中,並遵循與其他配置選項相同的格式。

OpenSSH 還提供了一些用於管理 SSH 連線和金鑰的工具和實用程式。以下是一些示例:

  • ssh-add - 此工具用於將 SSH 金鑰新增到 SSH 代理。SSH 代理是一個程式,它儲存私鑰並提供了一種無需每次都輸入密碼即可使用它們的方法。

  • ssh-keyscan - 此實用程式用於從遠端伺服器檢索 SSH 公鑰。如果您想將伺服器的公鑰新增到您的 known_hosts 檔案中,這將非常有用。

  • ssh-copy-id - 此工具用於將您的 SSH 公鑰複製到遠端伺服器的 authorized_keys 檔案中。這是一種方便的設定公鑰身份驗證的方法。

值得注意的是,雖然 OpenSSH 通常被認為是管理遠端伺服器的安全可靠的方式,但仍然需要採取其他安全措施來保護您的系統。以下是一些保護 OpenSSH 伺服器的安全最佳實踐:

  • 使用強密碼 - 如果您確實需要對 SSH 使用密碼身份驗證,請確保使用難以猜測的強密碼。避免使用常見的單詞或短語,並使用大小寫字母、數字和符號的組合。

  • 使用公鑰身份驗證 - 公鑰身份驗證通常被認為比密碼身份驗證更安全,因為它不依賴於可以猜測或截獲的共享金鑰。確保為每個使用者生成強大且唯一的金鑰對,並將私鑰安全地儲存在客戶端計算機上。

  • 限制 SSH 訪問 - 將 SSH 訪問許可權限制到特定使用者組或 IP 地址可以幫助降低未經授權訪問的風險。您可以使用 sshd_config 檔案中的 AllowUsers 和 AllowGroups 選項來限制訪問,並且可以使用防火牆規則來限制對特定 IP 地址的訪問。

  • 使用雙因素身份驗證 - 雙因素身份驗證透過除了密碼或金鑰對之外,還需要第二個因素(例如硬體令牌或移動應用程式)來為您的 SSH 連線新增額外的安全層。

  • 保持 OpenSSH 軟體更新 - 與任何軟體一樣,OpenSSH 也可能存在攻擊者可以利用的漏洞。確保使用最新的安全補丁使 OpenSSH 軟體保持最新,以降低攻擊風險。

透過遵循這些最佳實踐,您可以幫助確保 OpenSSH 連線的安全性和可靠性,並保護您的系統免受未經授權的訪問和攻擊。

結論

OpenSSH 是用於管理遠端 Linux 伺服器的強大且必不可少的工具。透過遵循本文中概述的步驟,您應該能夠在您的 Linux 機器上安裝和配置 OpenSSH,並使用它來安全地管理您的遠端伺服器。請記住,透過遵循最佳實踐(例如停用密碼身份驗證和使用公鑰身份驗證)來保持 OpenSSH 配置的安全。

更新於:2023年5月12日

915 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

立即開始
廣告