【发布时间】:2012-04-02 14:46:39
【问题描述】:
我刚刚按照这个视频在这里设置了我的 EC2 服务器 - http://www.youtube.com/watch?v=bBajLxeKqoY
我什至选择了相同的服务器类型,一切都很顺利,直到它要求我的 EC2 服务器的 root 密码...
有什么建议吗?
【问题讨论】:
标签: amazon-web-services amazon-ec2 ssh root
我刚刚按照这个视频在这里设置了我的 EC2 服务器 - http://www.youtube.com/watch?v=bBajLxeKqoY
我什至选择了相同的服务器类型,一切都很顺利,直到它要求我的 EC2 服务器的 root 密码...
有什么建议吗?
【问题讨论】:
标签: amazon-web-services amazon-ec2 ssh root
在浏览器中登录 Amazone 控制台: https://us-east-2.console.aws.amazon.com/ec2/xxxxxxxx
点击左侧面板中的实例 -> 然后选择您的实例 -> 点击右上角的连接按钮
你会看到一个窗口打开,会有一个按钮ssh Client
在这里您可以看到与您的实例连接的确切命令。
【讨论】:
检查您的 .pem 文件是否损坏。使用这条线
openssl rsa -check -in test.pem -noout
它应该返回 RSA Key OK。如果不是,那么很可能是您的 pem 文件中的某种格式或某些内容存在问题。
【讨论】:
chmod 400 pem_file
ssh -i /path_to_the_pem_file ec2-user@ServerIP
或
ssh -i /path_to_the_pem_file ubuntu@ServerIP
AWS AMI 默认禁止 root 访问。
希望对你有帮助。
【讨论】:
这是连接方式:
ssh -i /path/my-key-pair.pem ec2-user@public-ip
现在,它可以是 root、centos、ubuntu 或其他东西,而不是 ec2-user。您可以在“使用说明”下查看。如果它不存在,并且您已经尝试过上述所有用户,请从 AMI 随附的文档中查找。
AWS 上有一个错误让我花费了很多时间。如果您从“Images > AMIs”下的已保存 AMI 启动实例,请注意它使用创建它的运行实例的原始密钥。启动 AMI 时,它会提示您选择一个新密钥,甚至在描述下显示该密钥,但事实是这些密钥永远无法使用!
因此,如果您使用的是自定义/保存的 AMI,则必须获取原始密钥并使用它们,或者只需从 AWS 或市场创建一个全新的密钥。如果您尚未创建 AMI 或不记得它的来源,请查看详细信息选项卡。然后,您可以启动新实例或从同一源创建新 AMI。然后,这将使用您指定的键。
【讨论】:
生成密钥时请使用--query 'KeyMaterial'。
信息:
keyMaterial - 未加密的 PEM 编码 RSA 私钥。
【讨论】:
就做吧
sudo su -
为我工作
【讨论】:
在我的例子中,我们一直在复制一个文本文件来保存一个无处不在的密钥。有人不小心在这个文件中添加了字符,当我们从未设置密码时,我们开始从现已损坏的 .pem 文件中收到密码提示。
【讨论】:
就我而言,问题在于文件的中断类型。试试这个:
1.- 使用 TextWrangler 打开 .pem 文件
2.- 在应用程序底部,验证中断类型是否为“Windows(CRLF)”。
问候
【讨论】:
由于活动而更新此答案:
根据系统是 ubuntu 还是 Rhel,用户会有所不同。
对于 ubuntu 是
ssh -i my-pem-file.pem ubuntu@my-ec2-instance-address
对于 RHEL 来说是
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 之前chmod 400 你的 pem 文件
【讨论】:
chmod 600 为我工作,而不是 400。使用 Windows 7,由于我猜的奇怪行为:P
alpine - 以 USER 登录后变为 root,您需要 sudo -s
对我来说,问题是我从现有实例创建了一个 AMI,所以当我启动 AMI 时,即使我选择了一个新密钥,实例的原始密钥仍然有效。
【讨论】:
如果其他人碰到这个问题,我的问题的解决方案是我必须使用sudo 运行它:
sudo ssh -i my-pem-file.pem root@my-ec2-instance-address
【讨论】:
我正在使用 TurboLinux 实例,在 Mac OS 系统上,请尝试以下命令: ssh -i xxxxx.pem root@xxx.xxx.xxx.xxx(分配VM的公共地址) 我不用再问密码就可以通过了。
【讨论】:
我遇到了同样的问题,经过一番挣扎,我再次阅读了这个页面:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
注意在第四个主题中它谈到了用户名。通常是ec2-user,但如果您使用的是 RHEL5 发行版,则可以是 root,如果您使用的是 Ubuntu,用户名将是 ubuntu - 这是我的情况。
所以也可以试试这些:
ssh -i my-pem-file.pem ubuntu@my-ec2-instance-address 用于 Ubuntu
或
ssh -i my-pem-file.pem root@my-ec2-instance-address 用于 RHEL5
希望对你有帮助!
【讨论】:
root。这与许多暗示用户名通常或始终为ec2-user 的 EC2 信息背道而驰。
core
可能是Linux problem。 但是也有可能您使用了错误的地址/密钥(您启动了一个新实例但仍在使用旧地址;或者 2 个 pem 具有相似的名称,使用了错误的名称)"ssh with non-existing user"。
【讨论】:
如果您从另一台机器移动/复制了 pem 文件,则该文件的所有者可能与运行 ssh 客户端的用户不同。要更改文件的所有者:
sudo chown <currentusername> <filename.pem>
【讨论】:
如果您在以 ec2 用户身份登录后需要以 root 身份执行操作,请使用 sudo su - 这可以让您进入 root 并且不需要密码。你确实需要它的东西,比如查看 tomcat 日志文件
【讨论】:
当您在 sshd_config 中启用 PasswordAuthentication yes 时,系统会要求您输入密码。尝试将其更改为否。这应该可以解决它。
仅适用于可能遇到相同问题的其他人
【讨论】:
您应该使用 *.pem 而不是 root 密码。登录后使用passwd 设置密码。
【讨论】:
root 登录时遇到了同样的问题,但图像配置为登录应为ubuntu。