[Amazon-Web-Services] Amazon EC2インスタンスへのSSHアクセス[閉鎖]が許可されているときにパーミッションが拒否されました(publickey)



Answers

この場合、鍵ペアが失われたために問題が発生します。 これについて:

  • あるインスタンスでキーペアを変更する方法はありません 。 新しい鍵ペアを使用する新しいインスタンスを作成する必要があります。
  • インスタンスがElastic Beanstalkのアプリケーションで使用されている場合は、この問題を回避できます。

次の手順に従います。

  1. AWS管理コンソールへのアクセス
  2. Open Elastic Beanstalkタブ
  3. [ すべてのアプリケーション]タブからアプリケーションを選択します。
  4. 左側から設定を選択
  5. Instances Gearをクリックします。
  6. サーバーフォームでEC2キーペアの入力を確認し、新しいキーペアを選択します。 作成したばかりの新しい鍵ペアを表示するには、リストをリフレッシュする必要があります。
  7. セーブ
  8. Elastic Beanstalkは、新しいキーペアに関連付けられた新しいインスタンスを作成します。

一般的に、EC2インスタンスがインバウンドSSHトラフィックを受け入れるようにする必要があることに注意してください。

これを行うには、EC2インスタンスのセキュリティグループの特定のルールを作成する必要があります。 これらの手順に従うことができます。

  1. AWS管理コンソールへのアクセス
  2. EC2タブを開く
  3. インスタンス」リストから、目的のインスタンスを選択します。
  4. [ 説明]タブで 、インスタンスが使用しているセキュリティグループの名前を入力します。
  5. [ 説明 ] タブで [ ルールの表示 ]をクリックし、セキュリティグループにポート22の受信sshトラフィックのルールがあるかどうかを確認します
  6. そうでない場合、 Network&Securityで Security Groupを選択します
  7. インスタンスで使用されるセキュリティグループを選択し、[ 受信 ] タブをクリックします。
  8. [インバウンド]タブの左側で、SSHインバウンドトラフィックのルールを作成できます。
    • 新しいルールを作成する :SSH
    • 出典 :インスタンスにアクセスするIPアドレスまたはサブネットワーク
    • 注意 :インスタンスに無制限にアクセスできるようにする場合は、 0.0.0.0/0を指定できますが、Amazonではこの方法を推奨していません
  9. ルールの追加をクリックし、 変更を適用します。
  10. SSH経由でインスタンスに接続できることを確認してください。

これが私を助けたように誰かを助けることができるといいですね。

Question

私はAmazon EC2インスタンスを使用したいが、次のエラーに直面した。

Permission denied (publickey).

私は鍵ペアを作成し、 .pemファイルをダウンロードしました。

与えられた:

chmod  600 pem file.

次に、このコマンド

ssh -i /home/kashif/serverkey.pem  ubuntu@ec2-54-227-242-179.compute-1.amazonaws.com

しかし、このエラーがあります:

Permission denied (publickey)

また、 filezillaに接続してファイルをアップロード/ダウンロードするにはどうしたらいいですか?




私の秘密鍵はパーミッション400に設定されており、パーミッションが '644'に設定されていると拒否されました。

key_load_private_type:権限が拒否されました

解決策: Sudo chmod 644 <key.pem>

注:644に設定する必要があります、それは400で動作していませんでした




私はsudo前に置くだけで問題を解決した

sudo ssh -i mykey.pem myec2.amazonaws.com

しかし適切な解決策は、最初に所有権を変更してから、Janus Troelsen氏が以下のように言って普通のユーザーとして接続することです。 私の場合は次のようになります:

chown wellington:wellington key.pem



このエラーのもう1つの原因:

ユーザーのホームディレクトリがグループ書き込み可能な場合、ユーザーはログインできません。

(Ubuntuのインスタンスで再現されています。)




私はキーとsshのコマンドラインが正しく(私はUbuntu 14.04のインスタンスを複製しているので)私は知っていますが、上記のWade Andersonによって提案されているように5分待っても新しいインスタンスにsshできませんでした。

私はマシンを破壊して再作成しなければならなかった。 これは2つの別々の機会に起こった。 私は最初に入ることができないので、何が間違っているのか分かりません。

だから、あなたがこの問題を抱えているなら、それを試してみてください。




私は私のUbuntuインスタンスに接続するときにユーザー名(ubuntu)を追加するのを忘れていました。 だから私はこれを試した:

ssh -i /path/my-key-pair.pem my-ec2-instance.amazonaws.com

正しい方法は

ssh -i /path/my-key-pair.pem ubuntu@my-ec2-instance.amazonaws.com



次の手順を実行する必要があります。

  1. Linuxを使用している場合は、sshクライアントまたは端末を開きます。
  2. 秘密鍵ファイルを探し、ディレクトリを変更します。
    cd <path to your .pem file>
  3. 以下のコマンドを実行します。
    chmod 400 <filename>.pem
    ssh -i <filename>.pem ubuntu@<ipaddress.com>

ubuntuユーザーが作業していない場合は、 ec2-user試してみてください。




私にも同じ事が起きましたが、私のローカルマシンの秘密鍵がキーチェーンから失われてしまったということが起こっていました。

ssh-add -K

キーを再追加してから、sshコマンドを実行して接続し直してください。




私も同様のエラーがあった

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: xxxx.pem
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

私の問題は、 Step 3: Configure instance detail起動時スクリプト実行時のエラーにより、インスタンスが正しく起動しなかったことですStep 3: Configure instance detail Advanced details:

私が入力したと思ったもの:

#include https://xxxx/bootstrap.sh

実際に何が入力されたのかは、インスタンス設定を破る

#include

https://xxxx/bootstrap.sh

したがって、インスタンス側の公開鍵は作成されませんでした




私は同じ問題とその非常に奇妙な問題を抱えていました。 あなたがこれを実行するよりもすべてうまくやっていると信じているなら:EC2インスタンスのユーザーについて何度か混乱があります! ec2ユーザ、ubuntu、centosなどを取得することがありますので、あなたのユーザ名を確認してください!!

rootユーザーでログインする ssh -i yourkey.pem (400 permission) root@<ip> これはエラーを投げて、利用可能なユーザー名を表示します 。 そのユーザーとログインします。




私は同じエラーがあったが、状況は異なっていた。 多くの時間の後、私は遠くの私のリモートコンピュータに正常にsshすることができた後に青から起こった。 私の問題の解決策をたくさん探した後、ファイルのアクセス権がありました。 それは私のコンピュータやsshのファイル/ディレクトリに属しているリモートの権限を変更しなかったので、もちろん奇妙です。 ですから、ここでは良いarchlinux wikiからです:

ローカルマシンの場合は、次のようにします。

$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_ecdsa

リモートマシンの場合:

$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

その後、私のsshは、許可されていない(公開鍵)のことをせずに再び作業を始めました。




私の場合、私は次のことをしました:

chmod 400 <key.pem>

ssh -i <key.pem> ec2-user@ec2_public_dns (for debian)

私は当初root@ partを使っていました。私はこのプロンプトを得ました:

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



このエラーを引き起こす恐ろしいシナリオがあります:

別のインスタンス(インスタンスxyz)を作成したAMIから新しいインスタンスをランチングする場合、新しいインスタンスはインスタンスAと同じキーのみを受け入れます。 これは完全に理解できますが、新しいインスタンスを作成するステップバイステップのプロセスでは、(最後のステップで)機能しないキーを選択または作成するように求められるため、混乱します。

作成または選択するキーにかかわらず、インスタンスXYZのために使用していたキーだけが新しいインスタンスによって受け入れられます。




あるマシンからSSHできましたが、別のマシンからはSSHできませんでした。 私は間違った秘密鍵を使っていたことが分かります。

私がこれを理解したのは、私の秘密鍵から公開鍵を取得することでした。

ssh-keygen -y -f ./myprivatekey.pem

EC2インスタンスの~/.ssh/authorized_keysにあったものと一致しませんでした。




Links