Итак, я знаю, что могу отключить аутентификацию по паролю через 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. Если эта команда будет запущена во второй или третий раз, никаких дополнительных изменений в файле не будет.
Вторая строка добавляет параметр конфигурации в файл на случай, если он был каким-то образом удален.