2015-05-11 136 views
2

我试图启动一个ec2实例并通过ssh登录。我不小心删除了deafaul vpc,因此从头创建了一个vpc来执行此操作。我创建了一个具有10.0.0.0/16 VPC CIDR和10.0.0.0/24作为子网的VPC,并且还创建了一个网关。 A也修改了这个路由表。AWS创建vpc并启动实例

10.0.0.0/16当地

0.0.0.0/0 IGW-XXXX

我选择了一个Ubuntu的AMI和我的VPC推出,并分配一个弹性IP的实例。

我有一个公共IP分配给我的实例,并且安全组也打开了端口22。我能够ping此公网IP,但是当我尝试与

ssh -i access.pem [email protected] 

我的连接时间ssh到EC2实例了,我失去了在配置什么?

+0

我没有使用Ubuntu的,但与SUSE,它创建了一个用户EC2用户“并附加密钥对。您可以尝试登录[email protected]。心连心。 – Dinesh

+0

ubuntu是ubuntu ami's的默认用户,我有一个连接超时,而不是一个验证错误 – Diadara

回答

3

最近,我玩过这样的配置。下面是我的笔记(这对我有用),检查你是否没有错过任何东西。它看起来像安全组有问题,如果你可以ping实例IP,但不能通过SSH连接。我也会检查不同的AMI。

创建VPC

$ vpcId=`aws ec2 create-vpc --cidr-block 10.0.0.0/24 --query 'Vpc.VpcId' --output text` $$ echo $vpcId 
vpc-xxxxxxxx 

内VPC启用DNS解析

$ aws ec2 modify-vpc-attribute --vpc-id $vpcId --enable-dns-support "{\"Value\":true}" 
$ aws ec2 modify-vpc-attribute --vpc-id $vpcId --enable-dns-hostnames "{\"Value\":true}" 

创建默认网关创建的VPC

$ internetGatewayId=`aws ec2 create-internet-gateway --query 'InternetGateway.InternetGatewayId' --output text` && echo $internetGatewayId 
igw-yyyyyyy 
$ aws ec2 attach-internet-gateway --internet-gateway-id $internetGatewayId --vpc-id $vpcId 

在VPC创建子网

$ subnetId=`aws ec2 create-subnet --vpc-id $vpcId --cidr-block 10.0.0.0/24 --query 'Subnet.SubnetId' --output text` && echo $subnetId 
subnet-zzzzzzz 

配置路由表

$ routeTableId=`aws ec2 create-route-table --vpc-id $vpcId --query 'RouteTable.RouteTableId' --output text` && echo $routeTableId 

$ aws ec2 associate-route-table --route-table-id $routeTableId --subnet-id $subnetId 

$ aws ec2 create-route --route-table-id $routeTableId --destination-cidr-block 0.0.0.0/0 --gateway-id $internetGatewayId 

创建安全组和开放的端口22的任何连接

$ securityGroupId=`aws ec2 create-security-group --group-name ec2-dev-secgroup --description "security group" --vpc-id $vpcId --query 'GroupId' --output text` && echo $securityGroupId 
sg-xyzyzyz 

$ aws ec2 authorize-security-group-ingress --group-id $securityGroupId --protocol tcp --port 22 --cidr 0.0.0.0/0 

创建SSH密钥

aws ec2 create-key-pair --key-name ec2-dev --query 'KeyMaterial' --output text > ~/.ssh/ec2-dev.pem 

chmod 400 ~/.ssh/ec2-dev.pem 

创建EC2实例

$ instanceId=`aws ec2 run-instances --image-id ami-ecd5e884 --count 1 --instance-type t2.micro --key-name ec2-dev --security-group-ids $securityGroupId --subnet-id $subnetId --associate-public-ip-address --query 'Instances[0].InstanceId' --output text` 

ssh -i .ssh/ec2-dev.pem [email protected] 
+0

感谢这一点,我能够从我的防火墙以外的机器连接,因此怀疑我的防火墙阻止连接端口22到ec2,这很奇怪 – Diadara