通过SSH进入EC2服务器出错提示请以ec2-user用户身份login,而不是root用户

作为标题的问题。 为什么是这样的,我使用了ssh命令:ssh -i mykey.pem root@xxx-xxx-xx-xx-xxx.compute-1.amazonaws.com但是我得到那个错误,在google上找不到任何东西。 我究竟做错了什么?

您按照Klaus的build议以ec2-user身份login:

 ssh -i key.pem ec2-user@host 

…然后你使用sudo来运行命令。 例如,要编辑由root拥有的/etc/hosts文件,并且需要root权限: sudo nano /etc/hosts

或者你运行sudo su来成为root用户。

默认情况下, root用户不能login,但可以使用ec2-user

一旦你用ec2-userlogin,你切换到root并更改SSHconfiguration。

要成为您运行的根用户:

 sudo su - 

编辑SSH守护程序configuration文件/etc/ssh/sshd_config ,例如使用vi,并将PermitRootLogin条目replace为以下内容:

 PermitRootLogin without-password 

运行以下命令重新加载SSH守护程序configuration:

 /etc/init.d/sshd reload 

消息Please login as the ec2-user user rather than root user. 因为使用私钥login时会执行命令。 要删除该命令编辑~/.ssh/authorized_keys文件并删除command选项。 该行应该以键types开始(例如,ssh-rsa)。

(*)请自担风险。 我build议您始终保持打开一个控制台,以防万一在进行configuration更改后无法login。

作为参考,您可以阅读手册页:

 man sshd_config man sshd 

在Amazon ec2上设置hadoop集群时遇到了类似的问题。

我的头节点需要具有对每个工/从节点的root ssh访问权限。 通过将每个从属节点的IP地址,私有地址和别名添加到/etc/hosts/文件中,我将连接别名。 (我通过运行命令echo -e "`hostname -i`\t`hostname -f`\talias-name"获取数据,其中alias-name是我称之为每个节点(例如headn1 )。将每个节点的输出放在每个节点的/etc/hosts文件中。

我一直遇到的问题是,当我在我的头节点inputssh n1来ssh到我的第一个从节点时,我得到了同样的错误信息: Please login as the use "ec2-user" rather than the user "root". 所以在做了一些研究之后,我想出了如何解决这个问题。

第一:

  • SSH到你的服务器。 在这里非root用户(ec2用户)访问是正常的。
  • 然后su -你的方式进入根。 现在vi /etc/ssh/sshd_config并取消注释行PermitRootLogin yes
  • 退出vi编辑器。
  • 现在通过键入service sshd stop然后service sshd start来重新启动ssh守护进程。

第二:

  • 现在,这是我必须挖掘的部分,
  • 运行vi /root/.ssh/authorized_keys
  • 根据ssh-rsa.评论一切ssh-rsa. 只要在文件内容的开始处input一个# ,然后在no-port-forwardinginput…然后在ssh-rsa上input它就可以把它移到下一行(这样你就不用删除任何东西, )。
  • 退出vi编辑器

现在,您应该能够login到根,而不会popup错误消息。

另外,如果您正在使用别名进行群集设置, 在每个节点上重复相同的步骤。 首先使用ec2用户ssh然后按照步骤。 将IP地址,私有地址和别名信息添加到/etc/hosts文件后,您应该可以使用别名ssh n1将ssh插入到每个节点的根目录中。

我遵循的教程在这里: https : //www.youtube.com/watch?v=xrxQXfE7t9A

但它没有讨论根login问题。

希望有所帮助! 它为我工作。

*请记住,我已经考虑到任何安全问题。 这只是一个练习/ dev设置。

我想这只是要求你用另一个用户名login。 你碰巧有一个叫ec2-user吗? 如果是这样,请尝试这个:

 ssh -i mykey.pem ec2-user@xxx-xxx-xx-xx-xxx.compute-1.amazonaws.com 

编辑/ etc / ssh / sshd_config,并确保这是设置:

PasswordAuthentication yes

然后重新加载SSH:

systemctl重载sshd.service

您现在可以以ec2用户以外的用户身份login。