只需簡單2步,讓你的SSH更加安全
從 OpenSSH 6.2 開始已經支持 SSH 多因素認證,本文就來講講如何在 OpenSSH 下啟用該特性。
OpenSSH 6.2 以后的版本多了一個配置項 AuthenticationMethods。該配置項可以讓 OpenSSH 同時指定一個或多個認證方式,只有所有認證方式都通過后才會被認為是認證成功。
比如:要指定賬戶必須同時擁有指定的密鑰和正確的密碼才能登陸,則可以這樣配置。
- # 不要忘記開啟這些認證方式
- PubkeyAuthentication yes
- PasswordAuthentication yes
- AuthenticationMethods publickey,password
注:多個認證方式之間用 , 分隔開來。
你也可以設置多組多因素認證,只要每組認證用空格分隔開就行。
比如:你要設置登陸用戶必須有合適的密鑰,然后若是用戶來自于授信主機,則讓他直接登陸,否則還需要輸入密碼才能登陸。我們可以類似下面這樣配置:
- AuthenticationMethods publickey,password publickey,hostbased
開啟多因素認證有一個不好的地方就是對自動化腳本很不友好。因此一般來說多因素認證會跟 Match User 或 Match Group 一起連用,用來限制某些用戶開啟或者不開啟雙因素認證。
比如:一個比較常見的場景可能就是為有管理權限的用戶設置多因素認證。
- PubkeyAuthentication yes
- PasswordAuthentication yes
- Match Group wheel
- AuthenticationMethods publickey,password
當然,你也可以為一般用戶都開啟多因素認證,但提供某些密鑰認證的用戶來給自動化腳本使用。
- AuthenticationMethods publickey,password
- Match User git
- AuthenticationMethods publickey
- ForceCommand /usr/bin/git-shell -c "$SSH_ORIGINAL_COMMAND"