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

问题描述

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

解决方法

        基本上,您需要一个私钥文件才能通过SSH登录到EC2。请按照以下步骤创建一个: 转到https://console.aws.amazon.com/ec2/home并登录到您现有的Amazon帐户。 单击LHS上的\“ Key Pairs \”或https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs。 您应该看到您(或在EC2创建过程中)生成的KEY列表。 如果您看不到任何密码或丢失了私钥,请单击“创建密钥对”。 输入唯一的名称,然后按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-user
ubuntu
作为用户名。 点击Enter 而已。     ,        
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>
只需使用
ubuntu
而不是
root
。您的问题将得到解决。 干杯!     ,        步骤1)下载分配给您ec2机器的私钥(创建后仅下载一次,因此建议在某处提交) 步骤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     ,        您需要首先创建一个密钥对-使用EC2控制台进行操作。然后使用您的私钥通过您选择的SSH客户端SSH到服务器(用户名是
ec2-user
)。 进入后,如果需要,您可以发出ѭ8来获得root权限(注意:您不能直接以root身份登录)。     ,        如果您使用的是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
而已!     ,        要在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
)。 故障排除 如果您正在运行VPC实例,并且您的安全组正确(使用正确的规则)并且仍然无法正常工作,请在“ VPC”部分中检查应该连接到VPC的子网(两者均被实例使用)并在路由表中设置新规则,将“ 13”作为目标,并将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
    ,        可能没有以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。     ,做所有这些答案中所建议的是不够的。针对每个实例,您都会看到一个安全组。启动新实例时,会将其设置为默认值。您需要编辑安全组并添加ssh端口。以后,当您要托管网站时,还需要添加8080、8443、80、443端口。     ,        我接受AWS提供的使用默认安全组的提议,其中包括\'All Trafic \'端口。 而且,经过无数次尝试在新的ec2实例上进行连接之后,我才意识到应该编辑我使用的安全组,并手动将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或服务器的链接,用户采用服务器的用户名,身份文件是从AWS下载的文件。 只需在终端中运行以下命令
ssh AWS
享受它! 注意:浏览到
.ssh
文件夹。首先在主文件夹中按
Ctrl + H
以显示所有隐藏文件,最后按
cd .ssh
    ,        确保检查这些东西 私钥必须具有400个许可 确保您要访问的AWS实例的端口22已打开。
ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX
// XXX.XXX.XXX.XXX =您的实例公共IP     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...