通过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-user
login,你切换到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-forwarding
input…然后在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。