我下载了 cert-xxx.pem 和 pk-xxx.pem 文件以及 keypair.pem,并将其全部移动到我的 Ubuntu 客户端计算机上的 /.ssh 文件夹中。
这是我尝试在最后使用 -v 进行 SSH 时得到的结果
debug1:已收到 SSH2_MSG_SERVICE_ACCEPT debug1:可以继续的身份验证:publickey debug1:下一个身份验证方法:publickey debug1:正在尝试私钥:/root/.ssh/identity debug1:正在尝试私钥:/root/.ssh/id_rsa debug1:正在尝试私钥:/root/.ssh/id_dsa debug1:没有其他身份验证方法可以尝试。权限被拒绝(publickey)。
我是服务器管理新手,我想知道是否应该尝试将 pem 文件转换为 id_rsa 和 id_dsa。我不确定这是否可行,但我不知道如何从这些 pem 文件中获取 id_rsa、id_dsa,或者是否有任何解决方法。我第一次成功访问了 EC2,这是我第二次尝试,但到目前为止没有成功。
任何帮助都值得感激。问候沃克
多次登录失败后添加日志
myvers@ubuntu:~$ ssh -v -i /home/myvers/.ssh/keyTwo.pem [email protected]
OpenSSH_5.3p1 Debian-3ubuntu4, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to ec2-xxx-xxx-xxx-xx.compute-1.amazonaws.com xxx-xxx-xxx-xx port 22.
debug1: Connection established.
debug1: identity file /home/myvers/.ssh/keyTwo.pem type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3p1 Debian-3ubuntu4
debug1: match: OpenSSH_5.3p1 Debian-3ubuntu4 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu4
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'ec2-xxx-xxx-xxx-xx.compute-1.amazonaws.com' is known and matches the RSA host key.
debug1: Found key in /home/myvers/.ssh/known_hosts:3
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: myvers@ubuntu
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/myvers/.ssh/keyTwo.pem
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).
答案1
找不到私钥,因此使用 -i Identity_file 选项。
ssh -i ~/.ssh/cert-xxx.pem 用户@主机
答案2
cert-* 文件是用于访问 AWS API 的 X.509 证书。它不是 SSH 密钥。如果我没记错的话,keypair.pem 应该是您的私有 SSH 密钥。尝试将其用作我们的身份文件。
答案3
它寻找 id_rsa 和 id_dsa 的唯一原因是您没有告诉它在哪里可以找到可用的私钥——它会转而使用默认值。所以不用担心是否有 id_rsa 文件,而要担心如何让它使用您的 PK-xxx.pem 文件。
下面的语法应该有效:
ssh -i /path/to/keypair.pem [email protected]
答案4
感谢大家的帮助和意见。每个人都在这里,希望所有这些将来都能帮助到其他人。我做错的是,我还从 AWS 控制台创建了 Keypair.pem 并下载用于 SSH。这不是必需的。您所需要的只是您的证书,只需按照 keanu 建议的此链接中的步骤操作即可。https://help.ubuntu.com/community/EC2StartersGuide
Amazon 确实安全又简单,我非常惊讶他们如何构建了创建 ami 并通过 SSH 登录的流程,只需设置 pem 文件和变量即可。我一直在使用 linode,我对整个服务器创建和登录流程的简化和安全感到震惊。这真是太棒了,对初学者来说是一个很好的教训,让他们意识到不要一直 root 到他们的服务器的重要性(许多专业人士建议不要这样做),并意识到如何安全地访问您的服务器。再次感谢大家的帮助和意见。