Linux中為SSH啟用雙因素身份驗證

天府雲創發表於2019-04-30

無論您是將Fedora Linux用於桌面還是伺服器,都應考慮為Secure Shell(SSH)登入啟用雙因素身份驗證。為什麼?因為SSH是遠端登入伺服器的主要方式,所以您最不希望的是將該服務保持開啟狀態以進行攻擊。

更好地鎖定它的一種方法是為SSH啟用雙因素身份驗證。我想引導您完成這樣做的步驟,這樣您就可以享受Fedora桌上型電腦和伺服器的更高安全性。

準備:Fedora的一個例項啟動並執行。具有sudo訪問許可權的使用者帳戶。您的移動裝置上的第三方身份驗證器應用程式(例如Authy)。

在您開始討論之前,我強烈建議您在直接訪問Fedora的物理計算機上測試。如果出現問題,您能夠直接登入到計算機,可以更方便解決問題。

安裝

第一步是安裝Google身份驗證器。開啟終端視窗併發出以下命令:

sudo dnf install google-authenticator nano -y

安裝完成後,使用以下命令執行該工具:

google-authenticator

您將被問到以下問題:

Do you want authentication tokens to be time-based (y/n) y

Do you want me to update your "/home/user/.google_authenticator" file (y/n)? y

然後,應用程式將顯示QR碼,您需要掃描到Authy(在移動裝置上)。您還將獲得一個密碼列表,您需要將其複製並儲存在一個安全的祕密位置。成功掃描QR碼並儲存恢復程式碼後,您將再被問到三個問題(同樣,每個問題都回答“是”)。

配置SSH

在此之前,請確保您可以SSH到Fedora計算機。開箱即用,SSH守護程式可能未執行,因此請使用以下命令啟動並啟用它:

sudo systemctl start sshd

sudo systemctl enable sshd

SSH執行並啟用後,請確保從您計劃用於獲取遠端訪問許可權的任何/所有計算機上將SSH金鑰複製到此計算機(用於SSH金鑰身份驗證)。這可以通過從需要訪問的每臺機器執行以下命令來完成:

ssh-copy-id USER @ FEDORA_IP

USER是Fedora機器上的使用者名稱,FEDORA_IP是Fedora機器的IP地址。

一旦您能夠使用SSH金鑰身份驗證SSH到Fedora計算機,就可以配置SSH以使用雙因素身份驗證。從終端視窗(在Fedora機器上),發出命令:

sudo nano /etc/pam.d/sshd

註釋掉第一行(通過在開頭新增#symbole)。該行現在看起來像:

#auth substack password-auth

在檔案的底部,新增以下行:

auth sufficient pam_google_authenticator.so

儲存並關閉該檔案。

接下來,我們需要配置SSH守護程式。發出命令:

sudo nano / etc / ssh / sshd_config

首先,將ChallengeResponseAuthentication從no更改為yes,如下所示:

ChallengeResponseAuthentication是的

接下來,將PasswordAuthentication更改為no,如下所示:

PasswordAuthentication no

最後,將以下內容新增到該檔案的底部:

AuthenticationMethods publickey,password publickey,keyboard-interactive

儲存並關閉檔案。

使用以下命令重新啟動SSH守護程式:

sudo systemctl restart sshd

登入

準備好登入。從您的一臺客戶端計算機上,開啟終端視窗併發出命令:

ssh USER @ FEDORA_IP

USER是Fedora機器上的使用者名稱,FEDORA_IP是Fedora機器的IP地址。系統將提示您輸入驗證碼(圖A),您將從移動驗證應用中檢索該驗證碼。

圖A:我們提供驗證碼的SSH提示。

輸入程式碼後,您應該可以訪問該計算機(因為您設定了SSH金鑰身份驗證)。

恭喜,您現在可以為Fedora機器設定雙因素身份驗證。每當有人嘗試使用SSH登入該伺服器或桌面時,如果沒有您的移動身份驗證應用程式生成的雙因素身份驗證程式碼,他們將無法訪問。

相關文章