EC2实例上的非root用户login

我已经为客户build立了一个ArchLinux的EC2实例,目前我正处于testing阶段。

我正在使用从Windows 8的PuTTY SSH进入机器。 我已经正确设置了连接configuration文件,并指定了正确的密钥文件。

尝试login时,我将看到select要login的用户的选项。 我select“根”,连接进行没有问题,虽然我没有要求根密码。

我想禁止根login,但是当试图login时,我从系统获得的任何其他用户:

Server refused our key 

另外我得到一个popup窗口说:

 Disconnected: No supported authentication methods available (server sent: publickey) 

为什么我不能像其他用户那样login? 禁止rootlogin是非常重要的。

在旁边说明,我没有提示inputroot密码是正常的吗?

检查您的公共SSH密钥是否安装到non-root用户的/home/non-root/.ssh/authorized_keys文件中。 Server refused our key信息表明它没有或没有正确安装。

如果要为non-root用户和non-root用户使用相同的SSH密钥,则可能会将/root/.ssh/authorized_keys文件复制到/home/non-root/.ssh/authorized_keys

此外消息Disconnected: No supported authentication methods available (server sent: publickey)似乎build议此SSH服务器只configuration为允许使用SSH密钥进行身份validation。 如果您还想允许基于密码的身份validation,请将PasswordAuthentication yes添加到/etc/ssh/sshd_config文件中,然后重新启动sshd

对于以rootlogin时不提示root密码的情况,缺省情况下,SSH服务器configuration为使用SSH密钥进行密码authentication,如果成功则不需要input密码。

ArchLinux wiki有更多关于使用SSH密钥的信息。