AWS ssh访问“权限被拒绝(公钥)”的问题 [英] AWS ssh access 'Permission denied (publickey)' issue

查看:3625
本文介绍了AWS ssh访问“权限被拒绝(公钥)”的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何通过ssh连接到AWS实例?

我有:

  1. 报名参加了在AWS;
  2. 创建一个公共密钥和AWS网站的证书,并保存他们到磁盘;
  3. 去了我的控制台,创建环境变量:

      $出口JAVA_HOME = / usr / lib中/ JVM / Java的6-的OpenJDK /
    $出口EC2_CERT = /家庭/默认/ AWS / CERT-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem
    $出口EC2_PRIVATE_KEY = /家庭/默认/ AWS / PK-EBAINCRNWHDSCWWIHSOKON2YWGJZ5LSQ.pem
     

  4. 告诉AWS API来使用这个密钥对和保存密钥对文件:

      $ EC2-附加密钥对EC2-密钥对> EC2-keypair.pem
     

  5. 使用该密钥对已启动的AWS Ubuntu的9实例:

      $ EC2-运行情况AMI-ed46a784 -k EC2-密钥对
     

  6. 试图建立一个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 2007年10月19日
    DEBUG1:读取配置数据的/ etc / SSH / ssh_config中
    DEBUG1:应用选项*
    DEBUG1:连接到ec2-174-129-185-190.compute-1.amazonaws.com [174.129.185.190]端口22。
    DEBUG1:连接建立。
    DEBUG1:标识文件EC2-keypair.pem型-1
    DEBUG1:远程协议版本2.0,远程软件版本OpenSSH_5.1p1 Debian的5ubuntu1
    DEBUG1:比赛:OpenSSH_5.1p1 Debian的5ubuntu1拍的OpenSSH *
    DEBUG1:启用兼容模式协议2.0
    DEBUG1:本地版本字符串SSH-2.0-OpenSSH_5.1p1 Debian的5ubuntu1
    DEBUG1:SSH2_MSG_KEXINIT发
    DEBUG1:收到SSH2_MSG_KEXINIT
    DEBUG1:KEX:服务器 - >客户AES128-CBC HMAC-MD5无
    DEBUG1:KEX:客户 - >服务器AES128-CBC HMAC-MD5无
    DEBUG1:SSH2_MSG_KEX_DH_GEX_REQUEST(1024< 1024< 8192)派
    DEBUG1:期待SSH2_MSG_KEX_DH_GEX_GROUP
    DEBUG1:SSH2_MSG_KEX_DH_GEX_INIT发
    DEBUG1:期待SSH2_MSG_KEX_DH_GEX_REPLY
    DEBUG1:主机'ec2-174-129-185-190.compute-1.amazonaws.com是已知的和RSA主机密钥相匹配。
    DEBUG1:在/home/default/.ssh/known_hosts:11找到关键
    DEBUG1:ssh_rsa_verify:签名正确
    DEBUG1:SSH2_MSG_NEWKEYS发
    DEBUG1:期待SSH2_MSG_NEWKEYS
    收到SSH2_MSG_NEWKEYS:DEBUG1
    DEBUG1:SSH2_MSG_SERVICE_REQUEST SENT
    DEBUG1:收到SSH2_MSG_SERVICE_ACCEPT
    DEBUG1:身份验证,可以继续:公钥
    DEBUG1:下一个身份验证方法:公钥
    DEBUG1:尝试私钥:EC2-keypair.pem
    DEBUG1:读PEM私钥进行:输入RSA
    DEBUG1:身份验证,可以继续:公钥
    DEBUG1:没有更多的认证方法去尝试。
    权限被拒绝(公钥)。
     

    可能是什么问题,以及如何使它工作?

解决方案

有关Ubuntu的实例:

 搭配chmod 600 EC2-keypair.pem
SSH -v -i EC2-keypair.pem ubuntu@ec2-174-129-185-190.compute-1.amazonaws.com
 

有关其他情况下,你可能需要使用 EC2用户而不是的Ubuntu

我只用

大多数EC2 Linux映像在默认情况下创建的根用户。

另请参阅: http://www.youtube.com/watch?v=WBro0TEAd7g

How to connect to a AWS instance through ssh?

I have:

  1. Signed up at AWS;
  2. Created a public key and a certificate at AWS website and saved them to disk;
  3. Went to my console and created environment variables:

    $ 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
    

  4. Told AWS API to use this keypair and saved the keypair to file:

    $ ec2-add-keypair ec2-keypair > ec2-keypair.pem
    

  5. Started an AWS Ubuntu 9 instance using this keypair:

    $ ec2-run-instances ami-ed46a784 -k ec2-keypair
    

  6. Attempted to establish a ssh connection to the instance:

    $ 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: match: OpenSSH_5.1p1 Debian-5ubuntu1 pat OpenSSH*
    debug1: Enabling compatibility mode for protocol 2.0
    debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-5ubuntu1
    debug1: SSH2_MSG_KEXINIT sent
    debug1: SSH2_MSG_KEXINIT received
    debug1: kex: server->client aes128-cbc hmac-md5 none
    debug1: kex: client->server aes128-cbc 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-174-129-185-190.compute-1.amazonaws.com' is known and matches the RSA host key.
    debug1: Found key in /home/default/.ssh/known_hosts:11
    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: Trying private key: ec2-keypair.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).
    

    What could be the problem and how to make it work?

解决方案

For Ubuntu instances:

chmod 600 ec2-keypair.pem
ssh -v -i ec2-keypair.pem ubuntu@ec2-174-129-185-190.compute-1.amazonaws.com

For other instances, you might have to use ec2-user instead of ubuntu.

Most EC2 Linux images I've used only have the root user created by default.

See also: http://www.youtube.com/watch?v=WBro0TEAd7g

这篇关于AWS ssh访问“权限被拒绝(公钥)”的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆