Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 禁止 root SSH 登入與修改 SSH 埠號完整操作指南

編輯:Linux 教學

一、禁止 root 遠端 SSH 登入

# 1. 備份原配置
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

# 2. 修改配置
vim /etc/ssh/sshd_config
# 找到 PermitRootLogin 行,改為:
PermitRootLogin no
# 若原行被註釋,直接新增一行

# 3. 重啟 SSH 服務
service sshd restart
# 或 systemctl restart sshd

驗證: 嘗試以 root 登入,應提示 Access denied 或 Permission denied。

二、修改 SSH 預設埠(22 → 非標準埠)

安全雙埠過渡法(防鎖死)

vim /etc/ssh/sshd_config
# 保留原 22,新增新埠(例 7000)
Port 22
Port 7000

# 重啟
service sshd restart
  • 此時 22 與 7000 均可連線。
  • 用新埠 7000 實際測試登入無誤後,再註釋 Port 22 並重啟。

防火牆同步放行

# iptables 範例
iptables -A INPUT -p tcp --dport 7000 -j ACCEPT
service iptables save

# firewalld 範例
firewall-cmd --permanent --add-port=7000/tcp
firewall-cmd --reload

SELinux 埠標籤(CentOS/RHEL 7+)

semanage port -a -t ssh_port_t -p tcp 7000
# 若提示 semanage 不存在:yum install policycoreutils-python

三、完整 sshd_config 關鍵安全參數建議

參數建議值說明
PermitRootLoginno禁止 root 登入
Port22 + 非常用埠(如 7000)減少自動掃描噪音
Protocol2僅允許 SSH v2
PermitEmptyPasswordsno禁止空密碼
PasswordAuthenticationno強制金鑰認證(需先部署金鑰)
PubkeyAuthenticationyes啟用公鑰認證
MaxAuthTries3限制嘗試次數
ClientAliveInterval300保持連線心跳
ClientAliveCountMax2心跳失敗次數
LoginGraceTime60登入寬限秒數
AllowUsersuser1 user2@192.168.1.*白名單限制登入用戶/來源
DenyUsersroot daemon黑名單

四、金鑰認證部署速查(配合 PasswordAuthentication no)

# 客戶端生成金鑰對
ssh-keygen -t ed25519 -C "admin@company.com"

# 部署公鑰到目標主機
ssh-copy-id -p 7000 user@host
# 或手動
cat ~/.ssh/id_ed25519.pub | ssh -p 7000 user@host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

# 測試免密登入
ssh -p 7000 user@host

五、常見鎖死場景與自救

場景自救方法
改埠未開防火牆VNC/控制台/單用戶模式進入,開放埠、重啟 sshd
改 PermitRootLogin no 但無普通用戶單用戶模式建立普通用戶、加入 wheel、設定密碼/金鑰
SELinux 阻擋新埠單用戶模式執行 semanage port -a -t ssh_port_t -p tcp <新埠>
配置語法錯誤導致 sshd 起不來sshd -t 測試配置;單用戶模式修正

總結

雙埠過渡 + 防火牆/SELinux 同步 + 金鑰認證 + 白名單 是 SSH 硬化的標準組合拳。操作前務必確認擁有帶外管理入口(IPMI/IDRAC/VNC/控制台),並在生效前完成新埠實測,杜絕「一條指令鎖死自己」的慘劇。

Copyright © Windows教程網 All Rights Reserved