如果你的 Linux 伺服器公開在網際網路上,而且有開啟 SSH 登入的服務,這樣的情況一般都會建議使用公開金鑰認證的登入方式取代一般的密碼,這樣可以讓伺服器更安全也更方便。
而且能防止那些胡亂猜密碼的人入侵破壞伺服器。
本篇文章講解如何禁止 root 帳戶密碼登入
改為只能使用金鑰登入遠端伺服器的 root 帳戶
而非 root 帳戶的其他用戶仍然可用密碼登入
先用軟體工具產生公鑰與私鑰:
下載 PuTTYgen
https://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
打開然後按下圖操作
公鑰建議儲存成 txt 純文字格式
私鑰則非常的重要 一定要放在安全的地方 不可洩漏
設定 PuTTY 用戶端:
然後按一般方式登入遠端伺服器
設定 SSH 伺服器端:
* 須以 root 帳戶身份執行
mkdir ~/.ssh
touch ~/.ssh/authorized_keys
chmod 700 ~/.ssh
編輯檔案
nano ~/.ssh/authorized_keys
把公鑰的內容放進去然後存檔
改變檔案權限 增加安全性
chmod 600 ~/.ssh/authorized_keys
然後測試是否能成功使用金鑰方式登入遠端伺服器
如果成功了則進行關閉 root 密碼方式驗證:
修改 SSH Server 設定
vi /etc/ssh/sshd_config
找到相關字串移除註釋並改變為以下內容 如果沒有則新增
PasswordAuthentication yes
PermitRootLogin without-password
PubkeyAuthentication yes
然後重新啟動 SSH Server 讓設定生效
登出伺服器 用密碼登入測試 出現失敗則表示設定成功
再用金鑰登入伺服器 如果成功則表示本篇文章設定完成