ChatGPT解决这个技术问题 Extra ChatGPT

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

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

下载后不要忘记运行 chmod 400 my_private_key.pem.txt。

R
Rakesh Sankar

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

转到 https://console.aws.amazon.com/ec2/home 并登录您现有的亚马逊账户。

单击 LHS 上的“密钥对”或 https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs。您应该会看到您(或在 EC2 创建过程中)生成的 KEY 列表。如果您没有看到任何密钥或您丢失了私钥,请单击“创建密钥对”。输入一个唯一的名称,然后按 Enter。将出现一个下载面板供您保存私钥,保存它。将其保存在具有文件权限“0600”的地方

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

如果您没有看到任何密钥或您丢失了私钥,请单击“创建密钥对”。

输入一个唯一的名称,然后按 Enter。

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

将其保存在具有文件权限“0600”的地方

单击 LHS 上的“Instances”或 https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances 如果没有,您应该会看到 ec2-instances 列表看到任何,然后请创建一个。单击 EC2 机器并记下公共 DNS 地址。

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

单击 EC2 机器并记下公共 DNS 地址。

打开终端(在 Linux 中)并键入以下命令 ssh -i /path/to/private-key root@ - 根据您的发行版,在最新版本中已避免使用 root 用户名选择 ec2-user 或 ubuntu 作为您的用户名。按 Enter 就是这样。

ssh -i /path/to/private-key root@ - 根据您的发行版选择 ec2-user 或 ubuntu 作为您的用户名,最新版本中已避免使用 root 用户名。

按回车

而已。


您可能无法通过 ssh 直接以 root 身份登录。您必须使用非 root 帐户,例如 ec2-user 所以 'ssh -i /path/to/private-key ec2-user@hostname
尝试连接后,它告诉我应该使用 ubuntu 登录而不是 root。显然我有 ubuntu server 12.04 实例。
我成功创建了 SSH 帐户,接下来是如何使用创建的帐户使用 SCP 上传文件???当我尝试使用 SCP 上传时,它显示“权限被拒绝(公钥)”。
仍然得到这个按摩“权限被拒绝(公钥)”。这是为什么?
你们都得到“权限被拒绝(公钥)”。可能正在使用 Elastic Beanstalk。如果是这样,您需要进入 EB env Config、Security,并选择新的密钥对。将创建接受密钥的新 EC2 实例。用户名是 ec2-user 或者可能是 ubuntu,但不是 root
S
Shaharia Azam
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>

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


p
prayagupa

第 1 步)下载分配给您的 ec2 机器的私钥(创建时仅下载一次。因此建议在某处提交)

步骤 2) 并触发以下命令,

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

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


M
Mainguy

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


J
Jay Sidri

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

进入后,如果需要,您可以发出 sudo su - 以获得 root(注意:您不能直接以 root 身份登录)。


T
Thomas Decaux

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

而已!


如果我有不同地区的多伙伴密钥,如 us-east-1.pem 和 us-west-2.pem
C
Community

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

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

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

通过指定您的 PEM 文件连接到 Linux 机器,例如 ssh -i "file.pem" ubuntu@xxxx 确保您的 PEM 文件具有 600 权限(chmod 600 file.pem)。

故障排除

如果您正在运行 VPC 实例,并且您的安全组是正确的(使用正确的规则)并且它仍然无法正常工作,请在 VPC 部分 检查您的子网 中应该附加到您的 VPC(您的实例都使用)并在 Route Table 中设置新规则,将 0.0.0.0/0 作为 Destination 和您的 Internet 网关 作为目标

更多详情请查看:Troubleshooting Connecting to Your Instance

另请参阅:Possible reasons for timeout when trying to access EC2 instance


W
WaterRocket8236

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


H
Henry

没有以正确的用户身份登录 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,您可能只想完全重新启动机器,以便在集群之间保持一致性。如果这是您的问题,您可能至少需要相同的 OS Distro 用于您的 linux 机器。


S
SayeedHussain

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


D
Diego Favero

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

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

希望能帮助到你 !


V
Vineet Jain

首先更改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


R
Rajesh Prasad Yadav

确保检查这些东西

私钥必须具有 400 权限确保端口 22 对您尝试访问的 AWS 实例开放。 ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX // XXX.XXX.XXX.XXX = 你的实例公网ip