在Linux系統中,SSH(Secure Shell)是一種安全的遠程登錄協議
使用強密碼策略:確保用戶密碼足夠復雜,包含大小寫字母、數字和特殊字符。可以使用passwd
命令來設置和更改密碼。
禁用root遠程登錄:通過編輯/etc/ssh/sshd_config
文件,將PermitRootLogin
選項設置為no
,以禁止通過SSH直接登錄為root用戶。
PermitRootLogin no
/etc/ssh/sshd_config
文件,添加或修改以下選項以限制特定IP地址或網絡訪問SSH服務:AllowUsers user1 user2
AllowGroups group1 group2
DenyUsers user3 user4
DenyGroups group3 group4
/etc/ssh/sshd_config
文件,將以下選項設置為yes
:PubkeyAuthentication yes
PasswordAuthentication no
然后,確保用戶的公鑰已添加到~/.ssh/authorized_keys
文件中。
啟用公鑰加密:使用ssh-keygen
命令生成一對公鑰和私鑰,并將公鑰添加到遠程服務器的~/.ssh/authorized_keys
文件中。這將確保在傳輸過程中使用加密密鑰。
使用防火墻限制SSH端口:使用iptables
或ufw
等防火墻工具,僅允許特定IP地址或網絡訪問SSH端口(默認為22)。
例如,使用ufw
限制IP為192.168.1.0/24的訪問:
sudo ufw allow from 192.168.1.0/24 to any port 22
定期更新SSH密鑰:定期更換SSH密鑰對,并確保所有用戶的公鑰已更新到遠程服務器。
監控SSH活動:使用/var/log/auth.log
(或相應的日志文件)監控SSH登錄活動,以便及時發現異常行為。
使用SSH客戶端配置:在客戶端(如ssh-cli
或OpenSSH
)上,使用-o
選項指定安全的連接參數,例如:
ssh -o StrictHostKeyChecking=yes -o PubkeyAuthentication=yes -o PasswordAuthentication=no user@hostname
遵循以上建議,可以大大提高Linux SSH服務的安全性。