通过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是我称之为每个节点(例如head或n1 )。将每个节点的输出放在每个节点的/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。