我有一个Macbook Air,我希望允许不使用密码进行远程SSH访问。我创建了一个名为remotepair
我已经登录并确认可以与Mac一起使用的用户。我还将此用户添加到“删除登录”服务的允许用户列表中,并打开了该服务。全部在“共享”控制面板中完成。
我已获得另一台计算机的公钥并将其添加到文件中/Users/remotepair/.ssh/authorized_keys
。当另一台计算机运行时,ssh remotepair@<my ip>
我仍然收到密码提示。
如何禁用此密码提示?
我有一个Macbook Air,我希望允许不使用密码进行远程SSH访问。我创建了一个名为remotepair
我已经登录并确认可以与Mac一起使用的用户。我还将此用户添加到“删除登录”服务的允许用户列表中,并打开了该服务。全部在“共享”控制面板中完成。
我已获得另一台计算机的公钥并将其添加到文件中/Users/remotepair/.ssh/authorized_keys
。当另一台计算机运行时,ssh remotepair@<my ip>
我仍然收到密码提示。
如何禁用此密码提示?
Answers:
要禁用密码身份验证,您需要进行编辑/etc/sshd_config
。在Terminal
:
sudo vim /etc/sshd_config
(或替换为您喜欢的编辑器)
寻找这行:
#ChallengeResponseAuthentication yes
并将其更改为:
ChallengeResponseAuthentication no
也就是说,删除#
开头的,然后更改yes
为no
。
现在,所有后续的ssh登录名都将要求您使用ssh密钥,并且不会提示您输入密码。如果您没有本地访问权限,请确保在执行此操作之前ssh密钥起作用!无需重新启动ssh守护程序或任何其他操作,因为它会根据需要为每个新的传入连接启动。请注意,您可能还会看到PasswordAuthentication
一行,但默认情况下no
已为该行。
如果您的ssh键不起作用,那确实是一个单独的问题,但这可以回答现在提出的问题:)
/etc/ssh/
。
PasswordAuthentication
已更改为yes
,因此请确保将其更改为no
。
要更新macOS Sierra(特别是10.12.6)的答案,似乎配置文件现在 /etc/ssh/sshd_config
必须取消注释+修改2行以完全禁用密码身份验证:(这些是默认sshd_config
文件中的第57至62行,包括第57行)
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no
# Change to no to disable s/key passwords
ChallengeResponseAuthentication no
如前所述,您可以从System Preferences.app GUI启用/禁用ssh访问,并且在编辑配置之间不需要重新启动守护程序。