Linux SSH 伺服器改為金鑰登入設定

12次閱讀
尚無留言

如果你的 Linux 伺服器公開在網際網路上,而且有開啟 SSH 登入的服務,這樣的情況一般都會建議使用公開金鑰認證的登入方式取代一般的密碼,這樣可以讓伺服器更安全也更方便。
而且能防止那些胡亂猜密碼的人入侵破壞伺服器。

本篇文章講解如何禁止 root 帳戶密碼登入
改為只能使用金鑰登入遠端伺服器的 root 帳戶
而非 root 帳戶的其他用戶仍然可用密碼登入

先用軟體工具產生公鑰與私鑰:
下載 PuTTYgen
https://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
打開然後按下圖操作
Linux SSH 伺服器改為金鑰登入設定
Linux SSH 伺服器改為金鑰登入設定
公鑰建議儲存成 txt 純文字格式
私鑰則非常的重要 一定要放在安全的地方 不可洩漏

設定 PuTTY 用戶端:
Linux SSH 伺服器改為金鑰登入設定

然後按一般方式登入遠端伺服器

設定 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 讓設定生效

登出伺服器 用密碼登入測試 出現失敗則表示設定成功
再用金鑰登入伺服器 如果成功則表示本篇文章設定完成

正文完