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