在Linux系統中,root用戶是最高級別的用戶,可以對系統進行絕對的控制,因此很多管理員都不允許root用戶通過SSH登錄,這時候就需要修改SSH配置文件中的選項——permitrootlogin。
一、permitrootlogin是什麼?
permitrootlogin是OpenSSH配置文件中的一個選項,它可以控制是否允許root用戶通過SSH登錄。當這個選項設置為yes時,root用戶可以使用SSH登錄系統,而當設置為no時,root用戶不能使用SSH登錄系統。
下面是實現禁止root用戶登錄的方法,這裡以Ubuntu系統為例:
# 修改/etc/ssh/sshd_config文件 sudo vim /etc/ssh/sshd_config # 找到以下內容 #PermitRootLogin prohibit-password # 將其修改為 PermitRootLogin no # 重啟SSH服務: sudo systemctl restart sshd
二、為什麼不允許root用戶通過SSH登錄?
雖然root用戶擁有最高權限,但其登錄系統存在一定的安全隱患:
1、如果root密碼被破解或泄露,攻擊者可以輕易地獲得系統的控制權,進而對系統造成嚴重損害。
2、登錄系統的操作都需要root權限,如果管理員誤操作,可能會導致系統崩潰,給正常的業務造成影響。
三、允許其他用戶使用sudo命令獲得root權限
禁止root用戶登錄系統並不意味着管理員不能使用root權限。管理員可以通過向普通用戶授予sudo權限來實現root操作,而且這種方法更加安全可靠。
將用戶添加到sudo組中,允許其使用sudo命令:
# 添加用戶
sudo adduser {username}
# 將用戶加入sudo組
sudo usermod -aG sudo {username}
然後管理員就可以使用sudo命令在普通用戶的權限下完成各種操作,而不必冒着直接使用root帶來的風險:
# 以root權限運行命令
sudo {command}
四、使用密鑰登錄系統
除了禁用root用戶直接登錄系統外,我們還可以通過使用密鑰登錄系統的方式進行加固,增加安全性。
首先我們需要在本地機器上生成公鑰和私鑰:
# 生成密鑰對
ssh-keygen -t rsa
# 將公鑰複製到server機器上的authorized_keys文件中
ssh-copy-id {username}@{server_ip}
然後我們就可以使用密鑰登錄系統了:
# 使用私鑰登錄
ssh -i {private_key_file} {username}@{server_ip}
五、總結
permitrootlogin no選項可以有效增加SSH服務的安全性,禁止root用戶直接登錄系統,從而避免了一些潛在的風險。同時,使用sudo命令和密鑰登錄方式來取代root登錄,也更加安全可靠。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/152587.html
微信掃一掃
支付寶掃一掃