使用 CentOS 通過 SSH 遠程管理服務器是一個常見且有效的方法。以下是詳細的步驟指南,幫助你設置和使用 SSH 進行遠程管理:
大多數 CentOS 系統默認已經安裝了 OpenSSH 服務器。你可以通過以下命令檢查 SSH 服務狀態:
sudo systemctl status sshd
如果服務未啟動,可以使用以下命令啟動它:
sudo systemctl start sshd
要確保 SSH 服務在系統啟動時自動運行,執行:
sudo systemctl enable sshd
CentOS 7 及以上版本使用 firewalld
作為默認防火墻。你需要允許 SSH 端口(默認是 22)的流量。
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
你可以通過以下命令獲取服務器的公網 IP 地址:
ip addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -f1 -d'/'
(請將 eth0
替換為你的實際網絡接口名稱,如 ens33
等)
你可以使用 Linux 終端、macOS 終端或第三方 SSH 客戶端(如 PuTTY)來連接服務器。
打開終端,運行以下命令:
ssh username@server_ip
username
是你在服務器上的用戶名。server_ip
是服務器的 IP 地址。例如:
ssh root@192.168.1.100
首次連接時,系統會提示你確認服務器的指紋,輸入 yes
并回車繼續。
為了減少自動化攻擊的風險,可以更改 SSH 的默認端口(22)。
編輯 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
找到并修改以下行,將 Port
設置為你選擇的端口號(例如 2222):
Port 2222
保存并退出編輯器(在 vi
中按 Esc
,然后輸入 :wq
并回車)。
重啟 SSH 服務以應用更改:
sudo systemctl restart sshd
更新防火墻規則以允許新端口:
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
為了提高安全性,建議禁止 root 用戶直接通過 SSH 登錄,而是使用普通用戶登錄后再切換到 root。
編輯 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
找到并修改以下行:
PermitRootLogin no
保存并退出編輯器。
重啟 SSH 服務:
sudo systemctl restart sshd
使用 SSH 密鑰對進行身份驗證比密碼更安全。以下是如何設置公鑰認證的步驟:
在終端中運行:
ssh-keygen -t rsa -b 4096
按照提示操作,通常會生成 ~/.ssh/id_rsa
(私鑰)和 ~/.ssh/id_rsa.pub
(公鑰)。
使用 ssh-copy-id
命令將公鑰復制到服務器的 authorized_keys
文件中:
ssh-copy-id -p 2222 username@server_ip
-p 2222
指定使用的 SSH 端口(如果已更改)。username
是服務器上的用戶名。server_ip
是服務器的 IP 地址。系統會提示你輸入密碼,成功后,你的公鑰將被添加到服務器的 ~/.ssh/authorized_keys
文件中。
連接時無需輸入密碼:
ssh -p 2222 username@server_ip
一旦成功連接,你可以像在本地終端一樣執行各種命令來管理服務器。例如:
查看系統信息:
uname -a
更新系統:
sudo yum update -y
安裝軟件包:
sudo yum install package_name -y
查看日志文件:
sudo tail -f /var/log/messages
screen
或 tmux
進行會話管理這些工具允許你在 SSH 會話中斷時保持終端會話的活躍。
安裝 screen
:
sudo yum install screen -y
啟動新的 screen
會話:
screen -S session_name
要分離會話,按 Ctrl+A
然后按 D
。重新連接會話:
screen -r session_name
有時網絡不穩定可能導致 SSH 連接中斷。你可以在 sshd_config
中配置以下選項以保持連接:
ClientAliveInterval 60
ClientAliveCountMax 3
ClientAliveInterval
設置檢測間隔(秒)。ClientAliveCountMax
設置允許的最大無響應次數。修改后,重啟 SSH 服務:
sudo systemctl restart sshd
編輯 /etc/hosts.deny
和 /etc/hosts.allow
文件,控制哪些主機可以訪問 SSH。
例如,只允許特定 IP 訪問:
# /etc/hosts.deny
sshd: ALL
# /etc/hosts.allow
sshd: 192.168.1.50 192.168.1.100
通過以上步驟,你可以安全地使用 CentOS 進行遠程服務器管理。確保采取最佳實踐,如使用 SSH 密鑰認證、更改默認端口、禁用 root 直接登錄等,以提高服務器的安全性。如果在配置過程中遇到問題,可以查看 SSH 服務日志以獲取更多信息:
sudo tail -f /var/log/secure
希望這些信息對你有所幫助!