amazon-web-services aws 接続できない - Amazon Ec2インスタンスにSSHしようとしています - 権限エラー





13 Answers

ログインに間違ったユーザ名を使用している可能性があります:

  • ほとんどのUbuntuの画像にはユーザがいますubuntu
  • AmazonのAMIはec2-user
  • ほとんどのDebianイメージにはrootまたはadminいずれかがあります

ログインするには、sshコマンドを調整する必要があります:

ssh -l USERNAME_HERE -i .ssh/yourkey.pem public-ec2-host

HTH

接続できなくなった タイムアウト ファイル

これはおそらくいくつかの愚かな単純な質問です:)

私はAmazon EC2上に新しいlinuxインスタンスを作成しました。その一部として、.pemファイルをダウンロードしてSSHを可能にしました。

私がsshにしようとしたとき:

ssh -i myfile.pem <public dns>

私は得た:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         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).

このポストの後、私はchmod + 600のファイルをしようとしましたが、今は私がsshを取得したばかりです:

Permission denied (publickey).

私がここで学校の男の子のエラーは何ですか? .pemファイルは私のホームフォルダ(osx)にあります。 それは以下のようになります:

-rw-------@   1 mattroberts  staff    1696 19 Nov 11:20 amazonec2.pem



私のために働いた唯一のものは、

  1. キーのアクセス許可を変更する

    chmod 400 mykey.pem

  2. ec2-userと正しいec2-99 ...アドレスを使用してログインしてください。 ec2-99アドレスは、ログインしてインスタンスが表示されているときにawsコンソールの一番下にあります

    ssh -i mykey.pem ec2-user@ec2-99-99-99-99.compute-1.amazonaws.com







私はこの質問がすでに答えられていることを知っていますが、それらをすべて試した人にとって、あなたはまだ迷惑な "Permission denied(publickey)"を取得しています。 コマンドをSUDOで実行してみてください。 もちろん、これは一時的な解決策であり、権限を正しく設定する必要がありますが、少なくとも、現在のユーザーが必要な権限で実行されていないことを確認できます(想定どおり)

sudo ssh -i amazonec2.pem ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com

これを行うと、次のようなメッセージが表示されます。

Please login as the user "ec2-user" rather than the user "root"

それはまばらに文書化されている。 その場合は次のようにしてください:

sudo ssh -i amazonec2.pem ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com -l ec2-user

そしてあなたは栄光を得るでしょう:

   __|  __|_  )
   _|  (     /   Amazon Linux AMI
  ___|\___|___|



ssh -i /.pem user @ host-machine-IP

あなたが間違った資格情報を入力したか、秘密鍵ではなく公開鍵を使用しているか、ポート許可がすべてsshに対してオープンされているためです。 これはAmazonにとっては悪いことです。




ウィンドウでは、pemファイルのプロパティに移動して、セキュリティタブに移動し、次にボタンを進めることができます。

継承とすべてのアクセス許可を削除します。 あなた自身に完全なコントロールを与えてください。 すべてのSSL後に再び同じエラーを与えることはありません。




このエラーの背景には3つの理由があります。

  1. あなたは間違ったキーを使用しています。
  2. あなたの鍵に正しいパーミッションがありません。 あなたはそれを400にchmodする必要があります。
  3. 間違ったユーザーを使用しています。 UbuntuのイメージにはユーザーのUbuntuがあり、AmazonのAMIはec2ユーザーであり、Debianのイメージにはrootまたはadmin



チェックリスト:

  1. 正しい秘密鍵.pemファイルを使用していますか?

  2. 権限が正しく設定されていますか? (私のAmazonのブランドAMIは644で動作しますが、Red Hatは少なくとも600または400でなければなりません。Ubuntuについて知らないでください)

  3. sshの行に正しいユーザ名を使用していますか? Amazon-branded = "ec2-user"、Red Hat = "root"、Ubuntu = "ubuntu"。 ユーザーは「ssh -i pem usename @ hostname」または「ssh -l username -i pem hostname」と指定できます。




デフォルトでは、権限はPEMキーを許可していません。 許可を変更するだけです:

chmod 400 xyz.pem

もしubuntuのインスタンスなら、次のようにして接続してください:

ssh -i xyz.pem ubuntu@ec2-youraws.amazonaws.com




さて、あなたの投稿の説明を見て、私はあなたが行った2つの間違いがあったと感じています:

  1. 秘密鍵の正しいアクセス許可を設定します 。 以下のコマンドは、正しいファイルパーミッションを設定するのに役立ちます。

    chmod 0600 mykey.pem

  2. あなたがログインしようとしている間違ったec2ユーザ

    あなたのデバッグログを見ると、AmazonのLinuxインスタンスが生成されたと思います。 そのインスタンスタイプのデフォルトユーザーはec2-userです。 インスタンスがubuntuだったら、デフォルトのユーザはubuntuでした。

    ssh -i privatekey.pem default_ssh_user@server_ip

Note:
   For an Amazon Linux AMI, the default user name is ec2-user.

   For a Centos AMI, the default user name is centos.

   For a Debian AMI, the default user name is admin or root.

   For a Fedora AMI, the default user name is ec2-user or fedora.

   For a RHEL AMI, the default user name is ec2-user or root.

   For a SUSE AMI, the default user name is ec2-user or root.

   For an Ubuntu AMI, the default user name is ubuntu.

   Otherwise, if ec2-user and root don't work, check with the AMI provider.

ソース: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html : https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html




これを修正したのは、.pemファイルをappsディレクトリ内に移動することでした。 Sooはfooappが私のアプリの名前だと言う。 私はそこに直接置いた。




これはあなたのawspemキーの許可の問題です。

以下のコマンドを使用して、pem keyの許可を400に変更してください。

chmod 400 pemkeyname.pem

ファイルの許可を変更する権限がない場合は、以下のようにsudoを使用することができます。

sudo chmod 400 pemkeyname.pem

これはうまくいくはずです。




このエラーは許可のためにのみ発生します。

ちょうど許可600を与える

#chmod 600 pemfilepath




Related