禁用通过 ssh 密码登录的命令?

禁用通过 ssh 密码登录的命令?

因此,我知道我可以通过修改为 来禁用通过 ssh 进行的密码验证/etc/ssh/sshd_configPasswordAuthentication YesPasswordAuthentication 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 上默认有注释。如果此命令运行第二次或第三次,则文件不会发生其他更改。

第二行将配置选项添加到文件中,以防它以某种方式被删除。

相关内容