首页 文章

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

提问于
浏览
80

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

13 回答

  • 1

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

    • Go https://console.aws.amazon.com/ec2/home并登录您现有的亚马逊帐户 .

    • 单击LHS上的"Key Pairs"或https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs .

    • 您应该看到由您(或在EC2创建过程中)生成的KEY列表 .

    • 如果您没有看到任何私钥,请单击"Create Key Pair" .

    • 输入唯一名称并按Enter键 .

    • 将出现一个下载面板供您保存私钥,保存 .

    • 使用文件权限"0600"将其保留在某处

    • 点击LHS上的"Instances"或https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances

    • 您应该看到ec2-instances列表,如果您没有看到,请创建一个 .

    • 单击EC2计算机并记下公共DNS地址 .

    • 打开终端(在Linux中)并键入以下命令

    • ssh -i /path/to/private-key root@<ec2-public-dns-address> - 根据您的发行版选择 ec2-userubuntu 作为您的用户名,在最新版本中避免使用root用户名 .

    • 点击Enter

    • 就是这样 .

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

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

  • 4

    STEP 1) Download private keys assigned to your ec2 machine (创建时只下载一次 . 所以建议在某处提交)

    STEP 2) and fire following commands,

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

    Official DocConnecting to Your Linux/Unix Instances Using SSH

  • 0

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

  • 0

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

    进入后,如果需要,可以发出 sudo su - 获取root权限(注意:您无法直接以root用户身份登录) .

  • 10

    如果您使用的是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
    

    而已!

  • 3

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

    • 登录Amazon Web Services并选择EC2 .

    • 选择启动实例并按照向导选择正确的映像(Ubuntu),实例类型,配置VPC网络和子网,存储并允许安全组中的SSH访问 . 然后启动 .

    • 第一次,您可能需要设置密钥对并将其分配给实例 . 您还可以在密钥对中创建密钥对 . 创建后,下载PEM文件并将其保存在安全的地方 .

    • 实例启动后,请等待实例初始化并运行 .

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

    • 通过指定PEM文件连接到Linux框,例如
    ssh -i "file.pem" ubuntu@x.x.x.x
    

    确保您的PEM文件具有600权限(chmod 600 file.pem) .

    故障排除

    如果你're running VPC instance, and your security group is correct (with the right rules) and it still doesn'工作,在VPC部分 check your subnet 应该附加到你的 VPC (你的实例都是 used )并在 Route Table 中设置新规则,其中 0.0.0.0/0 为目的地而你的互联网网关为目标 .

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

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

  • 1

    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

    Note: - 导航到 .ssh 文件夹 . 首先按 Ctrl + H 显示所有隐藏文件,最后 cd .ssh

  • 0

    没有以正确的用户身份登录OS Distro可能是问题所在 . 对于某些新的AMI,用户名可能不是"ubuntu",而是"ec2-user" . 例如,对于Amazon Linux,我相信用户是"ec2-user" . Eric Hammond在这里举例说明:http://alestic.com/2014/01/ec2-ssh-username

    我的建议,试试:

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

  • 0

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

  • 0

    我接受了AWS的提议使用包含“All Trafic”端口的默认安全组 .

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

    希望能帮助到你 !

  • 151

    首先更改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或链接,用户取服务器的用户名,身份文件是创建实例时从AWS下载的文件 . 只需在终端中运行以下命令即可

    ssh AWS
    

    并享受它!

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

  • 7

    确保检查这些事情

    • 私钥必须具有400权限

    • 确保您尝试访问的AWS实例的端口22已打开 .

    • ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX // XXX.XXX.XXX.XXX =您的实例公共IP

相关问题