通过 SSH 访问我的 AWS EC2 容器

通过 SSH 访问我的 AWS EC2 容器
C:\Users\javac>ssh -i "DemoServer.pem" [email protected]
The authenticity of host 'ec2-52-15-253-230.us-east-2.compute.amazonaws.com (52.15.253.230)' can't be established.
ED25519 key fingerprint is SHA256:1tnx8yPhul2O6mLjYH3lps7EDWaQt+UpgVGso8JsdGg.
This host key is known by the following other names/addresses:
    C:\Users\javac/.ssh/known_hosts:1: ec2-18-217-154-12.us-east-2.compute.amazonaws.com
    C:\Users\javac/.ssh/known_hosts:2: ec2-13-58-233-206.us-east-2.compute.amazonaws.com
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'ec2-52-15-253-230.us-east-2.compute.amazonaws.com' (ED25519) to the list of known hosts.
[email protected]: Permission denied (publickey).

如果我尝试从 Ubuntu 在 vbox 中运行,我会得到同样的结果。

我确实检查过并且正确的端口应该是打开的。sshd 正在服务器上运行。

我使用的 pem 文件不是我生成的第一个文件。而是第三个或第四个。

我检查了 Windows 和 Linux 权限并尝试将其设置为对 pem 文件不公开。

在我收到此消息之前,我收到一条消息说 pem 文件太开放。

答案1

好的,看来在您创建初始 ec2 并创建一个 pem 文件后,如果不在 ec2 中执行一些步骤在服务器端修复它,您就无法再创建一个新的文件。

停止正在运行的 EC2 实例。

分离其 /dev/xvda1 卷(我们称之为卷 A)。

使用新的密钥对启动新的 t1.micro EC2 实例。确保在同一个子网中创建它,否则您将不得不终止该实例并重新创建它。

将卷 A 附加到新的微实例,作为 /dev/xvdf(或 /dev/sdf)。通过

SSH 连接到新的微实例并将卷 A 挂载到 /mnt/tmp。

将 ~/.ssh/authorized_keys 复制到 /mnt/tmp/home/ubuntu/.ssh/authorized_keys。

注销。

终止微实例。

从中分离卷 A。

将卷 A 作为 /dev/xvda 重新附加到主实例。

启动主实例。

使用新的 .pem 文件像以前一样登录。

所以我所做的就是创建一个新实例,然后只需使用 ssh 登录,就可以了。对于 Putty,我可能需要将 pem 转换为 putty ppk 文件,而不是生成新的 ppk。

相关内容