Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services SSH EC2请求密码_Amazon Web Services_Amazon Ec2_Ssh_Root - Fatal编程技术网

Amazon web services SSH EC2请求密码

Amazon web services SSH EC2请求密码,amazon-web-services,amazon-ec2,ssh,root,Amazon Web Services,Amazon Ec2,Ssh,Root,我刚刚按照这个视频在这里设置了我的EC2服务器- 我甚至选择了相同的服务器类型,一切都很顺利,直到它向我的EC2服务器请求根密码 有什么建议吗?您应该使用*.pem而不是root密码。登录后,使用passwd设置密码。当您在sshd\u配置中启用PasswordAuthentication yes时,系统将询问您密码。试着把它改成“否”,这样就可以解决问题了 仅适用于可能有相同问题的其他人更新 由于活动原因,正在更新此答案: 根据系统是ubuntu还是Rhel,用户会有所不同 对于ubuntu来

我刚刚按照这个视频在这里设置了我的EC2服务器-

我甚至选择了相同的服务器类型,一切都很顺利,直到它向我的EC2服务器请求根密码


有什么建议吗?

您应该使用*.pem而不是root密码。登录后,使用
passwd
设置密码。

当您在sshd\u配置中启用
PasswordAuthentication yes
时,系统将询问您密码。试着把它改成“否”,这样就可以解决问题了

仅适用于可能有相同问题的其他人

更新 由于活动原因,正在更新此答案:

根据系统是ubuntu还是Rhel,用户会有所不同

对于ubuntu来说就是这样

ssh -i my-pem-file.pem ubuntu@my-ec2-instance-address
对莱尔来说是这样

ssh -i my-pem-file.pem root@my-ec2-instance-address

连接到ec2实例不需要密码,它只需要一个pem文件 这就是你连接它的方式

ssh -i my-pem-file.pem ec2-user@my-instance-address

请记住在ssh'ing之前
chmod 400
您的pem文件

如果您作为ec2用户进入后需要作为root用户进行操作,请使用
sudo su
-这可以让您进入root,而不需要密码。有些事情确实需要这样做,例如查看tomcat日志文件。如果您从另一台机器移动/复制了pem文件,则文件的所有者可能与运行ssh客户端的用户不同。要更改文件的所有者,请执行以下操作:

sudo chown <currentusername> <filename.pem>
sudo chown
这可能是一个错误。
但也有可能是您使用了错误的地址/密钥(您启动了一个新实例,但仍然使用旧地址;或者两个pem的名称相似,但使用了错误的地址)。

我也遇到了同样的问题,经过很多努力,我再次阅读了此页:

注意,在第四个主题中,它谈到了用户名。它通常是
ec2用户
,但是如果您使用的是RHEL5发行版,它可以是
root
,如果您使用的是Ubuntu,用户名将是
Ubuntu
——这就是我的情况

因此,不妨试试这些:

ssh-i my-pem-file.pemubuntu@my-Ubuntu的ec2实例地址

ssh-i my-pem-file.pemroot@my-RHEL5的ec2实例地址


希望有帮助

我正在使用TurboLinux实例,在Mac OS系统上,请尝试以下命令: ssh-ixxxxx.pemroot@xxx.xxx.xxx.xxx(已分配虚拟机的公共广播)
我不需要再问密码就可以通过。

如果其他人碰到这个问题,我的问题的解决方案是我必须用
sudo
运行它:

sudo ssh -i my-pem-file.pem root@my-ec2-instance-address

AWS AMIs默认情况下禁止根访问


希望有帮助。

对我来说,问题是我已经从一个现有实例创建了一个AMI,所以当我启动AMI时,即使我选择了一个新的键,实例的原始键仍然有效。

在我的例子中,问题是文件的中断类型。试试这个:

1.-使用TextWrangler打开.pem文件

2.-在应用程序底部,验证中断类型是否为“Windows(CRLF)”


关于

在我的例子中,我们复制了一个文本文件来保存一个无处不在的密钥。有人不小心将字符添加到此文件中,我们开始从现在已损坏的.pem文件中获取密码提示,而我们从未设置密码

就这么做吧

     sudo su -
为我工作

请在生成密钥时使用
--查询“KeyMaterial”

信息:


keyMaterial-未加密的PEM编码RSA私钥。

这是连接的方式:

ssh -i /path/my-key-pair.pem ec2-user@public-ip
现在,它可以是root用户、centos用户、ubuntu用户或其他用户,而不是ec2用户。您可以在“使用说明”下进行检查。如果没有,并且您已经尝试了上述所有用户,请从AMI附带的文档中查找

AWS上有一个bug花费了我很多时间。如果您是从“Images>AMIs”下保存的AMI启动实例,请注意,它使用创建它的运行实例的原始键。当启动AMI时,它会提示您选择一个新密钥,甚至在描述下显示这样的密钥,但事实是这些密钥永远不会工作


因此,如果您使用的是自定义/保存的AMI,您必须获取原始密钥并使用它们,或者从AWS或市场创建一个全新的密钥。如果您还没有创建AMI或者不记得它来自哪里,请查看details选项卡下的内容。然后,您可以启动一个新实例或从同一源创建一个新AMI。然后将使用您指定的密钥。

检查您的.pem文件是否损坏。用这条线

openssl rsa -check -in test.pem -noout

它应该返回RSA密钥OK。如果没有,那么您的pem文件中很可能存在某种格式问题或其他问题。

我正在使用pem文件,但它仍然要求输入密码?除非尝试在另一台计算机上使用pem进行ssh,否则很重要?如果使用*pem,默认情况下不会要求输入密码。尝试在ssh命令中将用户指定为“ec2 user”或“root”。您使用的客户端和客户端操作系统是什么?你有没有限制ec2只能访问某些IP?我没有,或者我不认为我有,我只是完全按照那个视频。我在ec2用户上试过root…我正在使用ubuntu,只是terminalssh-I my.pem ec2-user@myip.comI以
root
身份登录时出现相同问题,但映像配置为登录名应为
ubuntu
。当前的CentOS AMI还需要ssh用户名
root
。这与许多EC2信息背道而驰,这些信息暗示用户名通常或总是
EC2 user
。感谢您的建议,它帮助了很多。CoreOS的用户名是为我工作的
core
chmod 600
,而不是
400
。使用Windows 7,我想这是由于一种奇怪的行为:PI会在Windows上使用PuTTY。PuTTY抛出“无私钥”错误:-(我尝试了每一种具有位数的密钥排列。现在您已经指出,可能问题只在于用户权限。我将验证并让您知道
ssh -i /path/my-key-pair.pem ec2-user@public-ip
openssl rsa -check -in test.pem -noout