这对某些人来说可能是一个非常简单的问题:)
我在Amazon EC2上创建了一个新的linux实例,并且作为其中一部分下载了.pem文件以允许我进入SSH.
当我试图ssh:
ssh -i myfile.pem <public dns>
Run Code Online (Sandbox Code Playgroud)
我有:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'amazonec2.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: amazonec2.pem
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
在这篇文章之后我尝试chmod +600 pem文件,但现在当我ssh我得到:
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
我在这里做的男生错误是什么?.pem文件位于我的主文件夹中(在osx中).它的权限如下所示:
-rw-------@ 1 mattroberts staff 1696 19 Nov 11:20 amazonec2.pem
Run Code Online (Sandbox Code Playgroud) authentication permissions ssh amazon-ec2 amazon-web-services
我不清楚我在Amazon EC2上为我的实例从EBS和实例存储中获得了什么好处.如果有的话,似乎EBS在成本相对较小的差异方面更有用(停止,开始,持续+更好的速度)......?此外,是否有更多人正在使用EBS,因为它仍然相对较新?
如何通过ssh连接到AWS实例?
我有:
去了我的控制台并创建了环境变量:
$ export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/
$ export EC2_CERT=/home/default/aws/cert-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem
$ export EC2_PRIVATE_KEY=/home/default/aws/pk-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem
Run Code Online (Sandbox Code Playgroud)告诉AWS API使用此密钥对并将密钥对保存到文件:
$ ec2-add-keypair ec2-keypair > ec2-keypair.pem
Run Code Online (Sandbox Code Playgroud)使用此密钥对启动AWS Ubuntu 9实例:
$ ec2-run-instances ami-ed46a784 -k ec2-keypair
Run Code Online (Sandbox Code Playgroud)尝试与实例建立ssh连接:
$ ssh -v -i ec2-keypair.pem ubuntu@ec2-174-129-185-190.compute-1.amazonaws.com
OpenSSH_5.1p1 Debian-5ubuntu1, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to ec2-174-129-185-190.compute-1.amazonaws.com [174.129.185.190] port 22.
debug1: Connection established.
debug1: identity file ec2-keypair.pem type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5ubuntu1
debug1: …Run Code Online (Sandbox Code Playgroud)我一直在Win7上通过SSH访问我的EC2实例.我不是想在Ubuntu 12.04上的另一台电脑上ssh它,获得"Permission denied(publickey)".错误.我一直在寻找这个问题,并尝试了以下方法:
使用此命令更改了密钥的访问权限(也尝试了400):
chmod 600~/.ssh/leno.pem
使用此命令更改了.ssh文件夹的访问权限(也尝试了700):
chmod 755~/.ssh
试过这样做:
add-ssh~/.ssh/leno.pem
没运气.当我尝试运行以下内容时:
ssh -vvv -i ~/.ssh/leno.pem ubuntu@ec2-50-19-199-128.compute-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
我收到这条消息:
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to ec2-50-19-199-128.compute-1.amazonaws.com [50.19.199.128] port 22.
debug1: Connection established.
debug3: Incorrect RSA1 identifier
debug3: Could not load "/home/murat/.ssh/leno.pem" as a RSA1 public key
debug1: identity file /home/murat/.ssh/leno.pem type -1
debug1: identity file /home/murat/.ssh/leno.pem-cert type …Run Code Online (Sandbox Code Playgroud) 我的 AWS 上运行着两个实例。我对他们两个都有相同的密钥对。我使用这两个实例很长时间了。但今天,如果我运行此命令,在尝试通过终端登录时,我会在一个实例上遇到错误。
ssh -i mypem.pem ec2-user@52.xx.xxx.xxx
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试使用同一文件登录其他实例pem。它有效,我可以成功登录它。
我已经尝试了这里提出的所有解决方案
SSH 访问 Amazon EC2 实例时权限被拒绝(公钥)
尝试通过 SSH 连接到 Amazon Ec2 实例 - 权限错误
但对我来说没有任何作用
如果我这样做
ssh -i mypem.pem ec2-user@52.xx.xxx.xxx -vvv
Run Code Online (Sandbox Code Playgroud)
结果是这样的
OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolving "52.xx.xxx.xxx" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 52.xx.xxx.xxx [52.xx.xxx.xxx] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file mypem.pem type -1
debug1: key_load_public: No such file …Run Code Online (Sandbox Code Playgroud) authentication permissions ssh amazon-ec2 amazon-web-services