为什么SSH坚持让我login?

我试图通过密码在远程Ubuntu服务器上禁用login,所以它只能通过使用encryption密钥文件thingy(我不完全清楚的术语)访问。

我遵循了这些看似清晰直截了当的指示 。 一切似乎没有错误,但当我testing无密码login正在工作,我只是自动login。

在我的/etc/ssh/sshd_config文件中,我确定了这些设置和三重检查:

 RSAAuthentication yes PubkeyAuthentication yes ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no 

我这样做后,我重新加载SSH服务(我认为这是可行的,但它不给我任何通知)。 然后我注销,临时移动我的密钥文件(按照说明)并再次login:

 # service ssh reload # exit logout Connection to ###.###.###.### closed. $ mv ~/.ssh/id_rsa ~/.ssh/id_rsa.backup $ ssh user@###.###.###.### Last login: Wed May 9 07:19:47 2012 from place.place.place.tld # 

(当然, #是我的服务器, $是本地机器。)

据说,在对/etc/ssh/sshd_config进行编辑之后,在移动我的~/.ssh/id_rsa文件后,当我login时,我应该被拒绝。 但我不是。 我只是像我自己的地方一样走过前门。

我哪里错了? 如何确保我只能使用密钥文件login,并且密码被拒绝?

如果你正在运行一个ssh-agent,那么这些密钥可以被加载到内存中,尝试这样的事情;

  $ ssh-add -l 1024 00:e1:3d:99:99:99:87:c9:99:ab:64:99:ee:6d:99:9e /home/user/.ssh/id_dsa (DSA) 2048 fe999:99:ad:99:99:e6:d4:e3:10:99:ed:99:65:ab:25 /home/user/.ssh/id_rsa (RSA) 

你会看到是否有任何密钥加载。 (他们也会出现与@Davidbuild议的ssh -v user@host命令)

如果你发现任何ssh-add -D清除它们。