如何在 Rocky Linux 9 或 8 上安裝 SSH

SSH(Secure Shell)是一種用於遠端存取和管理 Linux 伺服器的安全協定。它提供加密通信,確保客戶端和伺服器之間傳輸資料的安全。 SSH 是系統管理員和開發人員的基本工具,可讓他們透過不安全的網路安全地執行各種任務,例如執行命令、傳輸檔案和管理網路服務。

要在 Rocky Linux 9 或 8 上設定 SSH,您可以使用預設儲存庫執行簡單的安裝程序。本指南將引導您完成安裝步驟,並提供有關初始配置的提示,以增強安全性和可用性。

在 SSH 安裝之前更新 Rocky Linux

在 Rocky Linux 上安裝和設定 SSH 之前,請確保系統的軟體包是最新的至關重要。這不僅保證了更流暢的操作,還最大限度地減少了潛在的軟體衝突。

若要更新 Rocky Linux 系統,請使用以下命令:

sudo dnf upgrade --refresh

透過DNF命令安裝SSH

下一步涉及驗證 OpenSSH 伺服器是否已位於您的 Rocky Linux 系統上。這可以透過執行命令來確定:

rpm -qa | grep openssh-server

如果安裝了 OpenSSH 伺服器,此命令將傳回相關輸出。如果沒有輸出,則表示您的系統上不存在 OpenSSH 伺服器。若要解決此問題並安裝 OpenSSH 伺服器,請使用下列命令:

sudo dnf install openssh-server

啟用 SSH (SSHD) 服務

成功安裝 OpenSSH 伺服器後,必須在 systemd 框架內啟用 SSHD 服務。這可確保 SSH 守護程序在每次系統重新引導後自動初始化。若要實現此目的,請執行命令:

sudo systemctl enable sshd

現在將 SSHD 服務設定為自動啟動後,您可以使用以下命令手動啟動 SSH 伺服器:

sudo systemctl start sshd

出於驗證目的並確保 SSH 伺服器運行沒有問題,您可以使用以下命令檢查其狀態:

sudo systemctl status sshd

若要確認預設連接埠 (22) 現在正在主動偵聽傳入的 SSH 連接,請執行:

sudo ss -lt

在 Rocky Linux 9 或 8 上透過 SSH 連接到遠端伺服器

在 Rocky Linux 系統上正確設定 SSH 後,現在可以建立與遠端伺服器的連線。以下是如何在各種連接場景中使用 SSH 的詳細說明:

在 Rocky Linux 上使用密碼身份驗證與 SSH 進行連接

若要使用 SSH 和基於密碼的身份驗證建立與遠端伺服器的連接,請使用以下命令:

ssh username@remote_server

在這裡,將“username”替換為您的實際用戶名,將“remote_server”替換為所需遠端伺服器的 IP 位址或主機名稱。執行後,系統會提示您輸入密碼進行身份驗證。

使用 SSH 的公鑰身份驗證進行連接

SSH 為喜歡更安全連接方法的用戶提供公鑰身份驗證。要使用此方法進行連接,命令為:

ssh -i /path/to/private_key username@remote_server

在此命令中,將“/path/to/private_key”替換為指向您的私鑰檔案的路徑。同樣,將“username”替換為您的用戶名,將“remote_server”替換為遠端伺服器的 IP 位址或主機名稱。此方法無需輸入密碼,而是依賴提供的私鑰進行身份驗證。

指定用於 SSH 連接的備用端口

雖然 SSH 預設使用連接埠 22 進行連接,但某些遠端伺服器可能在不同連接埠上運行。若要在連接期間指定備用端口,請使用:

ssh -p 2222 username@remote_server

在此範例中,將“2222”替換為遠端伺服器使用的連接埠號碼。

使用 SCP 和 SSH 進行安全文件傳輸

SCP(即安全複製)是一個強大的命令列實用程序,可促進透過 SSH 在系統之間安全地傳輸檔案。要將檔案從本機 Rocky Linux 系統傳輸到遠端伺服器,命令是:

scp /path/to/local/file username@remote_server:/path/to/remote/directory

將“/path/to/local/file”替換為您要傳輸的檔案路徑。同樣,將“username”調整為您的用戶名,將“remote_server”調整為遠端伺服器的IP位址或主機名,將“/path/to/remote/directory”調整為遠端伺服器上您希望放置傳輸的目錄路徑。

在 Rocky Linux 上配置 SSH

優化 SSH 配置可以增強伺服器的安全性和效能。 SSH 設定檔位於 /etc/ssh/sshd_config,包含可調整以滿足特定需求的各種參數。雖然以下配置僅是範例,但它們可能會有所幫助,具體取決於您的伺服器或桌面設定。

禁用 SSH 的 GSSAPI 驗證

GSSAPI 驗證雖然很有幫助,但有時會在 SSH 連線建立過程中造成延遲。為了緩解這種情況,您可以透過將以下行附加到 SSH 設定檔來停用它:

GSSAPIAuthentication no

修改 SSH 的 SSH 會話逾時

調整會話逾時可以幫助管理不活動的 SSH 會話。若要將伺服器設定為每 5 分鐘傳送一條保持活動訊息,並在兩個連續訊息無人應答時終止會話,請新增:

ClientAliveInterval 300
ClientAliveCountMax 2

禁止 root 登入 SSH

為了增強安全性,特別是針對暴力攻擊,建議停用 root 登入。這可以透過以下方式實現:

PermitRootLogin no

實現 SSH 的公鑰身份驗證

公鑰身份驗證為基於密碼的方法提供了更安全的替代方案。要進行設置,首先您需要產生新的 SSH 金鑰對:

ssh-keygen -t rsa -b 4096

接下來,將公鑰傳輸到所需的遠端伺服器:

ssh-copy-id user@remote_server

確保將“user”替換為您的用戶名,並將“remote_server”替換為適當的 IP 位址或主機名稱。最後,在 SSH 設定中啟用公鑰身份驗證:

PubkeyAuthentication yes

限制 SSH 的 SSH 訪問

您可以限制特定使用者或群組的 SSH 存取權以增強安全性。若要實現此功能,請新增:

AllowUsers user1 user2
AllowGroups group1 group2

將佔位符替換為您希望授予存取權限的實際使用者名稱或群組名稱。

更改 SSH 的 SSH 端口

預設情況下,SSH 在連接埠 22 上運作。若要指派新端口,請使用:

Port <port_number>

建議選擇 1024 到 65535 之間未被其他服務佔用的連接埠號碼。

使用 Firewalld 保護 SSH

確保使用 VPS 或遠端伺服器環境時不間斷的存取。在對 Firewalld 進行任何更改之前,尤其是在遠端存取系統時,必須將您的 IP 位址列入白名單。如果不這樣做,應用防火牆變更後可能會無意中將您鎖定在伺服器之外。

若要將您的 IP 位址列入 Firewalld 的白名單,請使用下列命令:

sudo firewall-cmd --permanent --add-source=<your_ip_address>

代替與您的實際 IP 位址。

一旦您的 IP 位址被列入白名單,您就可以安全地將 SSH 服務合併到 Firewalld 中:

sudo firewall-cmd --add-service=ssh --permanent

進行必要的調整後,套用新的 Firewalld 配置:

sudo firewall-cmd --reload

若要驗證 Firewalld 中是否包含 SSH 服務,請執行下列命令:

sudo firewall-cmd --list-services | grep ssh

此命令將確認 SSH 服務是否被適當允許通過防火牆,確保您的遠端連線保持安全且可存取。

結論

在 Rocky Linux 系統上成功安裝和設定 SSH 後,您可以安全地遠端管理伺服器。定期更新您的 SSH 配置並套用最佳實務來維護安全性。透過遵循初始設定提示,您可以確保更安全、更有效率的遠端管理體驗。享受 SSH 為安全伺服器管理提供的強大功能。

Joshua James
跟我來
Joshua James 的最新帖子 (看全部)

發佈留言