Portanto, estou ciente de que posso desabilitar a autenticação de senha via ssh modificando- /etc/ssh/sshd_config
a alterando PasswordAuthentication Yes
para PasswordAuthentication no
. Quero garantir que os logins ssh só possam ser feitos por meio de um arquivo-chave para cada usuário.
Existe um bom comando de uma linha que define essa opção?
Responder1
Eu testei isso com sucesso:
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
Isso será usado sed
para editar o arquivo no local. Além de substituir o que vem a seguir PasswordAuthentication
por no
, removerá o comentário no início da linha, que existe por padrão no Ubuntu. Se este comando for executado uma segunda ou terceira vez, não haverá alterações adicionais no arquivo.
A segunda linha adiciona a opção de configuração ao arquivo caso ele tenha sido excluído de alguma forma.