如何为Amazon EC2实例设置SSH访问?

问题描述 投票:83回答:13

我需要SSH访问运行Ubuntu 10.4的Amazon EC2实例。我得到的只是亚马逊的用户名和密码。有任何想法吗?

ubuntu amazon-ec2 ubuntu-10.04
13个回答
155
投票

基本上,您需要一个私钥文件才能通过SSH登录EC2。请按照以下步骤创建一个:

  • https://console.aws.amazon.com/ec2/home并登录到您现有的亚马逊帐户。
  • 点击LHS或https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs上的“Key Pairs”。 您应该看到由您(或在EC2创建过程中)生成的KEY列表。 如果您没有看到任何私钥,请单击“创建密钥对”。 输入唯一名称并按Enter键。 将出现一个下载面板供您保存私钥,保存。 使用文件权限“0600”将其保留在某个位置
  • 点击LHS或https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances上的“Instances” 您应该看到ec2-instances列表,如果您没有看到,请创建一个。 单击EC2计算机并记下公共DNS地址。
  • 打开终端(在Linux中)并键入以下命令 ssh -i /path/to/private-key root@<ec2-public-dns-address> - 在最新版本中避免使用root用户名,根据您的发行版选择ec2-userubuntu作为您的用户名。 按Enter键 而已。

0
投票

在所有这些答案中做出建议是不够​​的。针对每个实例,您会看到一个安全组。当您启动新实例时,您将此事件设置为默认值。您需要编辑安全组并添加ssh端口。稍后,当您想要托管您的网站时,您还需要添加8080,8443,80,443端口。


0
投票

我接受AWS提议使用包含“所有流量”端口的默认安全组。

并且,经过多次尝试连接我的新ec2实例后,我才意识到我应该编辑我使用过的安全组并手动添加到入站和出站22端口(ssh)!

希望能帮助到你 !


0
投票

首先更改pem文件的权限

http://alestic.com/2014/01/ec2-ssh-username

在〜/ .ssh / config文件中,在文件顶部添加以下行

ssh -i /path/to/file.pem ec2-user@ec2...

ssh -i /path/to/file.pem ubuntu@ec2...

ssh -i /path/to/file.pem root@ec2...

主机名取服务器的IP或链接,用户取服务器的用户名,身份文件是创建实例时从AWS下载的文件。只需在终端中运行以下命令即可

chmod 400 path/to/key_pair.pem

并享受它!

注意:要导航到Host AWS Hostname myserver.com User myuser IdentityFile path/to/.pem/file port 22 文件夹。首先在主文件夹中按ssh AWS 以显示所有隐藏文件,最后显示.ssh


0
投票

确保检查这些事情

  1. 私钥必须具有400权限
  2. 确保端口22对您尝试访问的AWS实例打开。
  3. Ctrl + H // XXX.XXX.XXX.XXX =您的实例公共IP

23
投票
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>

只需使用ubuntu而不是root。你的问题将得到解决。干杯!


10
投票

步骤1)下载分配给ec2机器的私钥(创建时只下载一次。所以建议在某处提交)

步骤2)并点击命令,

chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem [email protected]

官方文件:Connecting to Your Linux/Unix Instances Using SSH


7
投票

注意,13.04的当前用户是“ubuntu”ssh -i ./mykey.pem [email protected]


4
投票

您需要先创建密钥对 - 使用EC2控制台执行此操作。然后使用您的私钥使用您选择的SSH客户端SSH连接到服务器(用户名为ec2-user)。

一旦进入,你可以发出一个sudo su -来获得root(如果你想要的话):注意:你不能直接以root身份登录。


3
投票

如果您使用的是MacOS,则应创建/编辑SSH配置文件(〜/ .ssh / config)并输入如下内容:

Host *.amazonaws.com
    User ubuntu
    Port 22
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem

然后连接到任何EC2实例:

ssh MYNAME.amazonaws.com

而已!


1
投票

要在AWS上设置Ubuntu,请按照以下步骤操作:

  1. 登录Amazon Web Services并选择EC2。
  2. 选择启动实例并按照向导选择正确的映像(Ubuntu),实例类型,配置VPC网络和子网,存储并允许安全组中的SSH访问。然后启动。
  3. 第一次,您可能需要设置密钥对并将其分配给实例。您还可以在密钥对中创建密钥对。创建后,下载PEM文件并将其保存在安全的地方。
  4. 实例启动后,请等待实例初始化并运行。

要通过SSH访问实例,请运行:

  1. 通过指定PEM文件连接到Linux框,例如 ssh -i "file.pem" [email protected] 确保您的PEM文件具有600权限(chmod 600 file.pem)。

Troubleshooting

如果您正在运行VPC实例,并且您的安全组正确(使用正确的规则)并且仍然无法正常工作,请在VPC部分中检查您的子网应该连接到您的VPC(由您的实例使用)和设置路由表中的新规则,其中0.0.0.0/0为目标,Internet网关为目标。

有关详细信息,请查看:Troubleshooting Connecting to Your Instance

另见:Possible reasons for timeout when trying to access EC2 instance


1
投票

1)首先qazxsw poi qazxsw poi用于限制文件权限,如下所示

chmod

2)然后.pem file直接从chmod 400 my-key-pair.pem 文件夹中输入以下命令

ssh

注意: - 导航到.ssh文件夹。首先按ssh -i my-key-pair.pem [email protected]显示所有隐藏文件,最后显示.ssh


0
投票

没有以正确的用户身份登录OS Distro可能是问题所在。对于某些新的AMI,用户名可能不是“ubuntu”,而是“ec2-user”。例如,对于Amazon Linux,我认为用户是“ec2-user”。 Eric Hammond在这里给出了一些例子:Ctrl + H

我的建议,试试:

cd .ssh

如果您的AMI错误,您可能只想重新启动计算机,以便在群集中保持一致。如果这是你的问题,你可能想要至少为你的linux盒子使用相同的OS Distro。

© www.soinside.com 2019 - 2024. All rights reserved.