如何在Mac OS X上设置sshd以仅允许基于密钥的身份validation?

我有一个启用了远程login的Mac OS X机器(Mac mini运行10.5)。 我想打开到Internet的sshd端口,以便能够远程login。

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

什么是在Mac OS X中设置的最好方法?

经过一些试验和错误,我自己find了答案。 这些选项需要在/etc/sshd_config

 PasswordAuthentication no ChallengeResponseAuthentication no 

只改变其中一个是不够的。

在/ 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并删除前面的#。

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

PasswordAuthentication no

如果您使用的是股票安装(即,您没有从源代码自己构build/安装它),那么launchd应该负责提取新的configuration而不必重新启动守护进程。