所以,我知道我可以透過修改為 來停用通過 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
就地編輯文件。除了將後面的內容替換為 之外PasswordAuthentication
,no
它還會刪除該行開頭的註解(Ubuntu 上預設存在該註解)。如果第二次或第三次執行此命令,則不會對該檔案進行任何其他變更。
第二行將配置選項新增至檔案中,以防它被以某種方式刪除。