預設 SSH 服務使用連接埠 22 且允許 root 直接登入,極易遭受暴力破解攻擊。本文整理三項基礎加固措施:修改連接埠、禁止 root 登入、建立一般用戶透過 su 或 sudo 提權。
# 編輯 sshd 設定檔
vi /etc/ssh/sshd_config
# 找到 #Port 22,修改為非標準連接埠(如 8888、1433、2222)
Port 8888
# 重啟服務生效
service sshd restart
# 或 systemctl restart sshd
連線時需指定連接埠:ssh -p 8888 user@host,PuTTY 在 Port 欄位填入新連接埠。
vi /etc/ssh/sshd_config
# 找到 PermitRootLogin yes,改為
PermitRootLogin no
# 重啟服務
service sshd restart
# 新增用戶
useradd uploader
passwd uploader # 設定密碼
# 遠端以 uploader 登入,再切換 root
su - root
# 或使用 sudo(需先設定 /etc/sudoers)
# 1. 修改連接埠
sed -i 's/^#Port 22/Port 8888/' /etc/ssh/sshd_config
# 2. 禁止 root 登入
sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
# 3. 新增用戶
useradd -m -s /bin/bash adminuser
echo "adminuser:StrongPassw0rd!" | chpasswd
# 4. 給予 sudo 權限(可選)
echo "adminuser ALL=(ALL) ALL" >> /etc/sudoers
# 5. 重啟 SSH
systemctl restart sshd
ssh root@server -p 8888 應被拒絕。ssh adminuser@server -p 8888 登入成功,再 su - root 取得最高權限。「修改連接埠 + 禁止 root 登入 + 一般用戶提權」是 Linux 伺服器上線前的三大基本動作,能擋下 90% 以上的自動化掃描與暴力破解嘗試。建議再搭配金鑰認證、Fail2ban、防火牆限制來源 IP 等進階措施。
Linux 能 Ping 通 IP 卻 Ping 不通域名:防火牆攔截 DNS 53 端口排查實錄
Unix/Linux 環境下配置 HTTP/HTTPS/FTP 代理全攻略:環境變量、wget、curl、apt、git、Docker
Linux man 命令詳解:線上手冊查詢、區段導航、配置檔與顯示器自定義
Linux netstat 命令完整指南:網路連線、監聽埠、路由表一網打盡
Linux 內核 3.15-rc7 發布:Linus Torvalds 預告正式版即將到來
Linux 管道命令大全:cut、grep、sort、uniq、wc、tee、tr、join、paste、split、xargs 實戰詳解