如何禁止使用密碼通過 ssh 連接遠程服務器
禁止使用密碼登錄 ssh(轉而使用密鑰代替密碼登錄)可以提高遠程服務器的安全性,降低被遠程攻擊的可能性。
我們都知道可以使用 root 或者其他用戶的密碼通過 ssh 登錄到遠程 Linux 服務器。
但是這會有一定的安全風險,大量的暴力攻擊腳本總是會試圖使用隨機密碼登錄到我們的系統。查看 Linux 服務器上的登錄日志,如果有大量失敗登錄記錄,那可能就是被暴力攻擊登錄的痕跡。?
這就是我們為什么一直強調要使用強密碼的原因。我們在 ??可以提高 ssh 安全性的幾個配置??? 一文中提到過,加強安全性可以使用類似 fail2ban 的工具,或者直接禁止使用密碼登錄,這樣不管是誰都無法通過登錄密碼進行遠程連接了。
禁用密碼登錄后,那怎樣在連接 ssh 呢?可以使用密鑰,即將公共 ssh 密鑰添加到服務器的系統(稱為基于密鑰的身份驗證)的方式連接到服務器。
禁用 ssh 密碼身份驗證
在真正動手設置之前,需要注意以下事項:
1)確保在個人計算機上創建了 ssh 密鑰對,并將公鑰添加到遠程服務器,以便可以登錄到遠程服務器;
2)禁用基于密碼的身份驗證,意味著你不能使用其他計算機通過 ssh 連接遠程服務器;
3)ssh 密鑰需妥善保存,如果因為個人計算機被格式化或其他原因導致丟失密鑰,那么就無法連接遠程服務器了。
一些云服務器提供商(比如 Linode 和阿里云服務)提供了 VNC 控制臺,如果無法連接遠程服務器,那么可以使用這種方式連接系統。
另外,要禁用基于密碼的 ssh 身份驗證,你需要熟悉 ssh 和其他 sysadmin 概念,且知道如何使用基于終端的文本編輯器,比如 vim 或 nano。
在了解以上注意事項后,我們接下來看看如何禁用基于密碼的 ssh 身份驗證。
首先,以 root 身份登錄到 Linux 服務器,然后使用基于終端的編輯器(比如 vim)編輯以下文件:
找到如下內容:
然后將其改為:
如果該行被注釋掉了(前面有一個 #),那么取消注釋(即去掉前面的 #)。
修改完成后,保存文件,并重啟 ssh 服務:
這樣就可以了。
以上就是本次分享全部內容,歡迎討論。