Amazon ec2 显示“权限被拒绝(公钥)”
Posted
技术标签:
【中文标题】Amazon ec2 显示“权限被拒绝(公钥)”【英文标题】:Amazon ec2 show "Permission denied (publickey)" 【发布时间】:2017-07-03 14:01:13 【问题描述】:我想通过 ssh 连接到我的亚马逊 ec2,但总是显示 Permission denied (publickey)。
ssh -i "tsaohucn.pem" ubuntu@ec2-54-213-252-182.us-west-2.compute.amazonaws.com -vvv这是调试信息。
OpenSSH_7.3p1,LibreSSL 2.4.1 debug1:读取配置数据 /etc/ssh/ssh_config debug1:/etc/ssh/ssh_config 第 20 行:为 * 应用选项 debug2:解析“ec2-54-213-252-182.us-west-2.compute.amazonaws.com”端口 22 调试2:ssh_connect_direct:需要priv 0 debug1:连接到 ec2-54-213-252-182.us-west-2.compute.amazonaws.com [54.213.252.182] 端口 22。 debug1:建立连接。 debug1:key_load_public:没有这样的文件或目录 debug1:身份文件 tsaohucn.pem 类型 -1 debug1:key_load_public:没有这样的文件或目录 debug1:身份文件tsaohucn.pem-cert type -1 debug1:为协议 2.0 启用兼容模式 debug1:本地版本字符串 SSH-2.0-OpenSSH_7.3 debug1:远程协议版本2.0,远程软件版本OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8 debug1:匹配:OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8 pat OpenSSH_6.6.1* compat 0x04000000 debug2:fd 3 设置 O_NONBLOCK debug1:以 'ubuntu' 身份向 ec2-54-213-252-182.us-west-2.compute.amazonaws.com:22 进行身份验证 debug3:hostkeys_foreach:读取文件“/Users/kaogaau/.ssh/known_hosts” debug3:record_hostkey:在文件 /Users/kaogaau/.ssh/known_hosts:3 中找到密钥类型 ECDSA debug3:load_hostkeys:从 ec2-54-213-252-182.us-west-2.compute.amazonaws.com 加载了 1 个密钥 debug3: order_hostkeyalgs: 首选 hostkeyalgs: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa -sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521 debug3:发送数据包:类型 20 debug1: SSH2_MSG_KEXINIT 已发送 debug3:接收数据包:类型 20 debug1:收到 SSH2_MSG_KEXINIT debug2:本地客户端 KEXINIT 提案 debug2:KEX 算法:curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie -hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c debug2:主机密钥算法:ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa- sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512, rsa-sha2-256,ssh-rsa debug2:密码ctos:chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256 -cbc,3des-cbc debug2: 密码 stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256 -cbc,3des-cbc debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac -sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1 debug2: MACs 库存: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac -sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1 debug2: 压缩 ctos: none,zlib@openssh.com,zlib debug2: 压缩 stoc: none,zlib@openssh.com,zlib debug2: 语言 ctos: debug2:语言库存: 调试2:first_kex_follows 0 调试2:保留0 debug2:对等服务器 KEXINIT 提议 debug2:KEX 算法:curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1 ,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 debug2:主机密钥算法:ssh-rsa、ssh-dss、ecdsa-sha2-nistp256、ssh-ed25519 debug2: 密码 ctos: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-cbc,3des -cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se debug2: 密码 stoc: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes128-cbc,3des -cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se debug2: MACs ctos: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256 -etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh .com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com ,hmac-sha1-96,hmac-md5-96 debug2: MACs 库存: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256 -etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh .com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com ,hmac-sha1-96,hmac-md5-96 debug2: 压缩 ctos: none,zlib@openssh.com debug2:压缩库:无,zlib@openssh.com debug2: 语言 ctos: debug2:语言库存: 调试2:first_kex_follows 0 调试2:保留0 调试1:kex:算法:curve25519-sha256@libssh.org debug1:kex:主机密钥算法:ecdsa-sha2-nistp256 调试1:kex:服务器->客户端密码:chacha20-poly1305@openssh.com MAC:压缩:无 调试1:kex:客户端->服务器密码:chacha20-poly1305@openssh.com MAC:压缩:无 debug3:发送数据包:类型 30 debug1:期待 SSH2_MSG_KEX_ECDH_REPLY debug3:接收数据包:类型 31 debug1:服务器主机密钥:ecdsa-sha2-nistp256 SHA256:w9ILtc0o/o2k0qd3FSHXyiP9x9uPVnUWEYuuFr21Ft4 debug3:hostkeys_foreach:读取文件“/Users/kaogaau/.ssh/known_hosts” debug3:record_hostkey:在文件 /Users/kaogaau/.ssh/known_hosts:3 中找到密钥类型 ECDSA debug3:load_hostkeys:从 ec2-54-213-252-182.us-west-2.compute.amazonaws.com 加载了 1 个密钥 debug3:hostkeys_foreach:读取文件“/Users/kaogaau/.ssh/known_hosts” debug3:record_hostkey:在文件 /Users/kaogaau/.ssh/known_hosts:2 中找到密钥类型 ECDSA debug3:load_hostkeys:从 54.213.252.182 加载 1 个密钥 debug1:主机 'ec2-54-213-252-182.us-west-2.compute.amazonaws.com' 是已知的并且与 ECDSA 主机密钥匹配。 debug1:在 /Users/kaogaau/.ssh/known_hosts:3 中找到密钥 debug3:发送数据包:类型 21 debug2:set_newkeys:模式 1 debug1:在 134217728 个块后重新生成密钥 debug1: SSH2_MSG_NEWKEYS 已发送 debug1:期待 SSH2_MSG_NEWKEYS debug3:接收数据包:类型 21 调试2:set_newkeys:模式0 debug1:在 134217728 个块后重新生成密钥 debug1:收到 SSH2_MSG_NEWKEYS debug2: key: tsaohucn.pem (0x0), 显式 debug3:发送数据包:类型 5 debug3:接收数据包:类型 6 debug2: service_accept: ssh-userauth debug1:收到 SSH2_MSG_SERVICE_ACCEPT debug3:发送数据包:类型 50 debug3:接收数据包:类型 51 debug1:可以继续的身份验证:publickey debug3:重新开始,传递了不同的列表公钥 debug3:首选公钥、键盘交互、密码 debug3: authmethod_lookup 公钥 debug3:剩余首选:键盘交互,密码 debug3:authmethod_is_enabled 公钥 debug1:下一个认证方式:publickey debug1:尝试私钥:tsaohucn.pem debug3:sign_and_send_pubkey:RSA SHA256:dcqlb/XKI3QtFZkQgarVwizp0n3p46C3TtcWNMxGlgw debug3:发送数据包:类型 50 debug2:我们发送了一个公钥包,等待回复 debug3:接收数据包:类型 51 debug1:可以继续的身份验证:publickey debug2:我们没有发送数据包,禁用方法 debug1:没有更多的身份验证方法可以尝试。 权限被拒绝(公钥)。有人知道发生了什么吗?
【问题讨论】:
tsaohucn.pem
文件的权限是什么?
sudo chmod 400 tsaohucn.pem
【参考方案1】:
我重新创建了一个新的 ec2 实例和一个新的密钥对,并且它可以工作。我不知道为什么,但是当我使用旧密钥对时,亚马逊可能会带来一些错误。
【讨论】:
【参考方案2】:EC2 实例权限被拒绝的原因。
-
启动 EC2 实例时,您必须选择公有子网,并且必须在 Networking 部分中启用公有 ip。
您必须在安全组入站规则中打开22端口并打开您机器的公共IP才能访问实例。
确保 internet gateway 已连接到公有子网,EC2 实例已在其中启动。
【讨论】:
【参考方案3】:debug1: key_load_public: No such file or directory
debug1: identity file tsaohucn.pem type -1
debug1: key_load_public: No such file or directory
请检查您是否指向 key(.pem) 文件的正确位置。
在命令中指定绝对路径。
chmod 600 /home/user/directory1/whatever/mykey.pem
ssh -i /home/user/directory1/whatever/mykey.pem
【讨论】:
以上是关于Amazon ec2 显示“权限被拒绝(公钥)”的主要内容,如果未能解决你的问题,请参考以下文章