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

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

基本上,你需要一个私钥文件通过SSHlogin到你的EC2。 请按照以下步骤创build一个:

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

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

步骤1)下载分配给您的ec2机器的私人密钥 (创build时只有一次下载,所以build议在某处提交)

步骤2)并激活下面的命令,

 chmod 400 MyKeyPair.pem ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com 

官方文档 : 使用SSH连接到您的Linux / Unix实例

请注意,13.04的当前用户是“ubuntu”ssh -i ./mykey.pem ubuntu@ec2-xxx-xxx-xxx-1.compute-1.amazonaws.com

您需要先创build密钥对 – 使用EC2控制台执行此操作。 然后使用您的私钥使用您select的SSH客户端进入服务器(用户名为ec2-user )。

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

如果您使用的是MacOS,则应该创build/编辑SSHconfiguration文件(〜/ .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 

而已!

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

  1. login到Amazon Web Services并selectEC2
  2. select启动实例,然后按照向导select正确的映像(Ubuntu),实例types,configurationVPCnetworking和子网,存储并允许在安全组中进行SSH访问。 然后启动
  3. 这是第一次,您可能需要设置密钥对并将其分配给实例。 您也可以在密钥对中创build密钥对。 一旦创build,下载PEM文件并保存在安全的地方。
  4. 一旦实例启动,请等到实例初始化运行

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

  1. 通过指定您的PEM文件连接到Linux框,例如

     ssh -i "file.pem" ubuntu@xxxx 

    确保你的PEM文件有600个权限( chmod 600 file.pem )。

故障排除

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

有关更多详细信息,请查看: 连接到您的实例的疑难解答

另请参阅: 尝试访问EC2实例时可能出现超时的原因

1)首先chmod .pem file来限制文件权限,如下所示

 chmod 400 my-key-pair.pem 

2)然后ssh直接从.ssh文件夹下面的命令

ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com

注意: – 导航到.ssh文件夹。 首先按Ctrl + H显示所有隐藏的文件,最后按cd .ssh

没有以正确的用户身份loginOS Distro可能是问题。 对于某些新的AMI,用户名可能不是“ubuntu”,而是“ec2-user”。 对于Amazon Linux,例如我相信用户是“ec2-user”。 Eric Hammond在这里给出了例子: http : //alestic.com/2014/01/ec2-ssh-username

我的build议,请尝试:

 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... 

如果你有错误的AMI,你可能只是想重新启动机器,所以你的群集中有一致性。 如果这是你的问题,你可能会需要相同的OS Distro的至less你的Linux机器。

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

我也有通过SSH访问AWS的问题。

检查这些东西:

  1. 确保您的实例密钥必须具有“0600”权限。
  2. 检查你的安全组,22端口必须是open.or你可以打开所有stream量的入站,如果这不是安全威胁。
  3. 使用myIP编辑安全组行并保存。

那确实欺骗了我。

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

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

希望能帮助到你 !

首先更改pem文件的权限

 chmod 400 path/to/key_pair.pem 

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

 Host AWS Hostname myserver.com User myuser IdentityFile path/to/.pem/file port 22 

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

 ssh AWS 

并享受它!

注意 :导航到.ssh文件夹。 首先在主文件夹中按Ctrl + H显示所有隐藏文件,最后显示cd .ssh