web-dev-qa-db-ja.com

AWS SSH接続エラー:許可が拒否されました(公開キー)

SSHでEC2インスタンスに接続しようとしていますが、夢中になります。私はこの投稿を読んで、すべてのユーザーの組み合わせを試しました:

AWS sshアクセス 'Permission denied(publickey)' issue

それはまだ私のために働いていません。何が欠けているのでしょうか?

  roberto@ubuntu:~/keys$ ssh -v -i ec2-key-pair.pem [email protected]
OpenSSH_6.6, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to ec2-54-72-242-0.eu-west-1.compute.amazonaws.com [54.72.242.0] port 22.
debug1: Connection established.
debug1: identity file ec2-key-pair.pem type -1
debug1: identity file ec2-key-pair.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6p1 Ubuntu-2ubuntu1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.2
debug1: match: OpenSSH_6.2 pat OpenSSH* compat 0x04000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server Host key: ECDSA e4:06:ee:a5:a5:d2:97:5f:0f:b7:06:5e:f2:b3:da:26
debug1: Host 'ec2-54-72-242-0.eu-west-1.compute.amazonaws.com' is known and matches the ECDSA Host key.
debug1: Found key in /home/roberto/.ssh/known_hosts:3
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
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-key-pair.pem
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

UPDATE: 

@aldanuxの提案によると:

    roberto@ubuntu:~/keys$ ssh-keygen -R 54.72.242.0
# Host 54.72.242.0 found: line 4 type ECDSA
/home/roberto/.ssh/known_hosts updated.
Original contents retained as /home/roberto/.ssh/known_hosts.old
roberto@ubuntu:~/keys$ ssh -i ec2-key-pair.pem [email protected]
Warning: Permanently added the ECDSA Host key for IP address '54.72.242.0' to the list of known hosts.
Permission denied (publickey).
23
Rober

この手順を試してください:

ssh-keygen -R 54.72.242.0

Sudo chmod 600 ec2-key-pair.pem

その後:

ssh -i ec2-key-pair.pem [email protected]
4
Black Sheep

おそらく、間違ったユーザーとしてログインしています。 Ubuntuインスタンスの場合、コマンドは次のようになります。

ssh -v -i ec2-key-pair.pem [email protected]
34
Rico

AWSに固有ではありませんが、この役に立たないエラーメッセージ

debug1: key_parse_private2: missing begin marker

sSHユーザーのホームディレクトリの所有権(またはアクセス許可)がリモートマシンで正しくない場合など、いくつかのあいまいなシナリオで発生します。

この問題や同様の不明瞭なメッセージをトラブルシューティングする最善の方法は、アクセスできる場合は通常、問題を特定するため、リモートマシンの認証ログを調べることです。 DebianおよびUbuntuシステムでは、これはtail(必要に応じてSudoを使用)で最も簡単に実現できます。

tail -f -n 80 /var/log/auth.log

私の特定のケースでは、私は見つけました

Authentication refused: bad ownership or modes for directory /var/www

完全に正確で簡潔:owner:groupは、daemon:daemonであるはずのときにwww-data:www-dataに設定されていました(これは、過去に他のWebサーバーがインストールされていたUbuntuマシン上にありました)。

16
Ben Johnson

ユーザー名「ec2-user」を使用中に「key_parse_private2:開始マーカーがありません」という同様の問題がありましたが、ユーザーとしてubuntuに変更すると修正されました。

5
changeagent

はい、確かに非常に誤解を招くメッセージです。私の場合、たとえば間違ったキーを使用しました。

キーペアを削除して新しいキーペアを作成する必要がありましたが、インスタンスは古いキーペアを使用し続けていました(簡単に実行できないため)。

エラーメッセージは同じだったので、インスタンスのawsパネルでキーパリで使用するキーペアと一致するキー名を確認する価値があります。

0

「admin」としてログインするとうまくいきました。インスタンスタイプに基づいて、ログインユーザーが変更されます。 ec2-userまたはubuntuまたは私の場合は管理者。 ssh -v -i ./my_key_file.pem [email protected]

また、pemファイルのアクセス許可が600 chmod 600 ./my_key_file.pemであることを確認します

0
Anish

このエラーを取得する簡単な方法の1つは、破損した.pemファイルです。

たとえば、last行が欠落している場合、「開始マーカーが欠落しています」と表示されます。

.pemが次で終わることを確認します。

----- RSAプライベートキーの終了-----

0
TimT