如何在Mac OS X上将sshd设置为仅允许基于密钥的身份验证?


15

我有一台启用了“远程登录”的Mac OS X计算机(运行10.5的Mac mini)。我想打开Internet的sshd端口以能够远程登录。

出于安全原因,我想禁用使用密码的远程登录,仅允许具有有效公共密钥的用户登录。

在Mac OS X中进行设置的最佳方法是什么?

Answers:


20

经过一番尝试和错误,我自己找到了答案。这些选项需要在以下位置设置/etc/sshd_config

PasswordAuthentication no
ChallengeResponseAuthentication no

仅更改其中之一是不够的。


3
在El Capital(可能还有Mavericks)中,地点改为/etc/ssh/sshd_config而不是/etc/sshd_config
yorch 2015年

就是这样。很多在线资源都没有提到这件事的关键:ChallengeResponseAuthentication no
the_real_one

1

在/ etc / ssh / sshd_config中

# To disable tunneled clear text passwords, change to no here! Also,
# remember to set the UsePAM setting to 'no'.
#PasswordAuthentication yes
#PermitEmptyPasswords no

将PasswordAuthentication设置为no并删除其前面的#。


您是否已阅读以上有关将UsePAM设置为“否”的评论?
user21715

这似乎没有必要(请参阅我自己的答案)。
Christian Berg

0

您实际上在/ etc / sshd_config中设置了以下行:

密码验证否

如果您使用的是常规安装(即您不是从源代码自己构建/安装的),则launchd应该负责选择新配置,而不必重新启动守护程序。


这不起作用,我仍然可以使用密码登录。日志文件/var/log/secure.log包含以下条目:sshd [16306]:从192.168.178.20端口63841 ssh2接受基督教徒的键盘互动/ pam命令我相信PasswordAuthentication选项仅控制明文密码登录,而不控制键盘互动式?
Christian Berg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.