透過 ssh 停用密碼登入的命令?

透過 ssh 停用密碼登入的命令?

所以,我知道我可以透過修改為 來停用通過 ssh 的密碼/etc/ssh/sshd_config身份PasswordAuthentication Yes驗證PasswordAuthentication no。我想確保每個用戶只能透過密鑰檔案進行 ssh 登入。

有沒有一個很好的單行命令來設定此選項?

答案1

我成功地測試了這個:

sudo sed -E -i 's|^#?(PasswordAuthentication)\s.*|\1 no|' /etc/ssh/sshd_config
if ! grep '^PasswordAuthentication\s' /etc/ssh/sshd_config; then echo 'PasswordAuthentication no' |sudo tee -a /etc/ssh/sshd_config; fi

這將用於sed就地編輯文件。除了將後面的內容替換為 之外PasswordAuthenticationno它還會刪除該行開頭的註解(Ubuntu 上預設存在該註解)。如果第二次或第三次執行此命令,則不會對該檔案進行任何其他變更。

第二行將配置選項新增至檔案中,以防它被以某種方式刪除。

相關內容