[amazon-web-services] Amazon Ec2インスタンスにSSHしようとしています - 権限エラー


Answers

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

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

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

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

HTH

Question

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

私は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



私の問題は、私の.pemファイルが私のNTFSパーティションに入っていたことでした。 私は私のLinuxパーティション(ext4)に移動しました。

以下を実行して必要な権限を与えます。

chmod 400 my_file.pem

そしてそれは働いた。




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

ちょうど許可600を与える

#chmod 600 pemfilepath




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

  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




Linuxユーザーが.pemファイルを使用してサーバーに接続するための簡単な手順は次のとおりです。

ステップ1:pemファイルの場所にコピーして、.sshのホームディレクトリにコピーします。

cp example.pem ~/.ssh/example.pem

ステップ2:権限を変更する

chmod 400 ~/.ssh/example.pem

Step3:次のコマンドを実行します。

ssh -i ~/.ssh/example.pem ec2-user@host.com

このコマンドは長すぎるため、次のコマンドを使用してこのエイリアスを作成する必要があります。

 vim ~/.bashrc

同じコマンドを最後に以下のように記述してください。

alias sshConnect='ssh -i ~/.ssh/example.pem ec2-user@host.com'

システムを再起動し、 sshConnectを使用してサーバーに接続します。




このエラーの背景には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」と指定できます。




私はこの質問がすでに答えられていることを知っていますが、それらをすべて試した人にとって、あなたはまだ迷惑な "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にとっては悪いことです。




他の答えに加えて、これが働くために私がやったことがここにあります:

  • あなたがいない場合は、キーを.sshフォルダにコピーします。

cp key.pem ~/.ssh/key.pem

  • キーに適切な権限を与える

chmod 400 ~/.ssh/key.pem

  • ssh-agentを起動する( https://.com/a/17848593感謝)

eval `ssh-agent -s` ssh-add

  • 次に、キーを追加します

ssh-add ~/.ssh/key.pem

今では、EC2(:




Related