「安全外殼」SSH 是一種用於在主機之間建立安全連接的網路協議,通常透過連接埠 22(最好更改)。 SSH 用戶端和 SSH 伺服器適用於大多數作業系統。 幾乎任何其他網路協定都可以在 SSH 內工作,也就是說,您可以在另一台電腦上遠端工作、透過加密通道傳輸音訊或視訊串流等。 除了,
身份驗證使用密碼進行,但開發人員和系統管理員傳統上使用 SSH 金鑰。 問題是私鑰可能被盜。 新增密碼理論上可以防止私鑰被盜,但實際上,在轉發和快取金鑰時,它們
如何達成雙因素認證
Honeycomb 的開發人員最近發布了
這些說明假設您有一個對 Internet 開放的基本主機(堡壘)。 您希望透過網際網路從筆記型電腦或電腦連接到該主機,並存取位於其後面的所有其他裝置。 2FA 可確保攻擊者即使獲得對您筆記型電腦的存取權限(例如透過安裝惡意軟體)也無法執行相同的操作。
第一個選項是 OTP
OTP - 一次性數字密碼,在本例中將與金鑰一起用於 SSH 驗證。 開發人員寫道,這不是一個理想的選擇,因為攻擊者可能會建立一個假堡壘,攔截您的 OTP 並使用它。 但總比沒有好。
在這種情況下,在伺服器端,以下行將寫入 Chef 配置中:
metadata.rb
attributes/default.rb
(從attributes.rb
)files/sshd
recipes/default.rb
(複製自recipe.rb
)templates/default/users.oath.erb
用戶端安裝任何 OTP 應用程式:Google Authenticator、Authy、Duo、Lastpass、已安裝 brew install oath-toolkit
或 apt install oathtool openssl
,然後產生一個隨機的base16字串(key)。 它被轉換為行動身份驗證器使用的 Base32 格式並直接匯入到應用程式中。
因此,您可以連接到 Bastion 並看到它現在不僅需要密碼,還需要 OTP 程式碼進行身份驗證:
➜ ssh -A bastion
Enter passphrase for key '[snip]':
One-time password (OATH) for '[user]':
Welcome to Ubuntu 18.04.1 LTS...
第二個選項是硬體身份驗證
在這種情況下,使用者不需要每次都輸入OTP碼,因為第二因素變成了硬體設備或生物辨識。
這裡Chef的配置稍微複雜一點,客戶端的配置取決於作業系統。 但完成所有步驟後,MacOS 上的用戶端可以使用密碼並將手指放在感測器上確認 SSH 中的身份驗證(第二個因素)。
iOS 和 Android 用戶確認登入
在 Linux/ChromeOS 上,可以選擇使用 YubiKey USB 令牌。 當然,攻擊者可以竊取您的令牌,但他仍然不知道密碼。
來源: www.habr.com