web-dev-qa-db-ja.com

AWS-切断:サポートされている認証方法は利用できません(サーバー送信:publickey)

AWSサーバーへのSSHがPuTTYとFilezillaの両方で壊れました。この投稿が包括的なトラブルシューティングリストになるように努力していますので、他のスタックオーバーフローページへのリンクを共有する場合は、それらを質問に編集します。

Disconnected : No supported authentication methods available (server sent :publickey)


このエラーは、ほぼ1年前に接続を設定したときと同じです。 AWS SSHを初めてセットアップする場合、これらは最も一般的な問題に対処します。

ただし、以前に動作していたシステムに影響を与えると考えられる唯一のものは次のとおりです。

  • 間違ったIP: AWSインスタンスを再起動(またはイメージを作成)しても、同じIPアドレスが維持されるとは限りません。これは明らかにPuTTYで更新する必要があります。

他にどんな可能性がありますか?

これに対する解決策は(以下の受け入れられた投稿による)、AWS EC2ではこれらの3つすべてが適切なアクセス許可を持つ必要があるということです(777notこれらのいずれについてもOK)。動作する1つの例を次に示します。

/home/ec2-user/ - 700
/home/ec2-user/.ssh/ - 600
/home/ec2-user/.ssh/authorized_keys - 600

/ var/log/secureはエラーをスローしているものを教えてくれます。完全にロックアウトされている場合は、このビデオチュートリアルを参照してアクセスしてください: http://d2930476l2fsmh.cloudfront.net/LostKeypairRecoveryOfLinuxInstance.mp4 =

43
AvadData

私にとって、このエラーは、ユーザーのホームディレクトリを次のように変更した直後に表示されました。

Sudo usermod -d var/www/html username

〜/ .sshのauthorized_keyファイルへの適切なアクセス許可がないために発生することもあります。このファイルの許可が0600で、〜/ .sshの許可が700であることを確認してください。

8
Iman Sedighi

以前に動作していたシステムに影響を与える別の原因があります。 Ubuntuの代わりにAmazon Linuxを使用するように(AWS OpsWorksを使用して)インスタンスを再作成し、そうするとこのエラーを受け取りました。 「ubuntu」ではなく「ec2-user」をユーザー名として使用するように切り替えると、問題が解決しました。

13
Owen

また、正しいLinuxユーザーはいるが、ファイル.ssh/authorized_keysを作成しておらず、公開キーを Linuxインスタンスでのユーザーアカウントの管理

12
rodolk

PuTTYは、Amazon EC2によって生成された秘密キー形式(.pem)をネイティブにサポートしていません。 PuTTYには、PuTTYgenという名前のツールがあり、キーを必要なPuTTY形式(.ppk)に変換できます。 PuTTYを使用してインスタンスに接続する前に、秘密キーをこの形式(.ppk)に変換する必要があります。

これを実行する手順は次のとおりです。 https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/PuTTY.html

これで問題は解決しました。

12
René Winkler

偶然の間違いにより、私は同じ問題を抱えていました。誰かが同じ間違いをした可能性がある場合に備えて、ここで共有します。

他の人が説明したように、基本的な手順。

  1. PuTTYとputtygen、またはPuTTYパッケージをダウンロードしてインストールします。
  2. AWS EC2インスタンスから.pemファイルを取得します。
  3. Puttygenを使用して.pemファイルを変換し、秘密鍵を取得します。ここで間違いが発生しました。 PuttyGenから「変換」タブを選択し、.pemファイルをロードします。 pemファイルを読み込んだ後、ここで「生成」を押すのではなく、「秘密鍵を保存」を直接押します。それがあなたが必要とする鍵です。 [生成]をクリックすると、まったく異なるキーのペアになります。
  4. PuTTYでは、ec2-user @ your.public.dns.that.you.get.from.aws.ec2.instanceを使用し、SSH/Authで秘密鍵をロードします

幸運を!

10
Tony Xu

包括的な回答はこちら: https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/PuTTY.html

問題は、不正なログインに関連している可能性があります。これはAMIによって異なります。次のAMIで次のログインを使用します。

  • ubuntuまたはubuntu AMIのroot
  • ec2-userAmazon Linux AMIで
  • centosCentos AMIで
  • debianまたはDebian AMIのroot
  • ec2-userまたはFedora上のFedora
  • ec2-userまたはrooton:RHEL AMI、SUSE AMI、その他もの。

OSを使用している場合:

  • Windows-AWSウェブサイトからPEMキーを取得し、PuttyGenを使用してPPKファイルを生成します。次に、PuTTYを使用してPPKを使用します(左の列を使用して選択します:接続-> SSH->認証:承認用の秘密キー)
  • Linux-実行:ssh -i your-ssh-key.pem login@IP-or-DNS

幸運を。

8
Witold Kaczurba

ほとんどの場合、ログインに間違ったユーザー名を使用しても認証方法エラーは発生しませんでした。しかし、接続の問題にまだ苦しんでいて、上記のすべてのオプションを試した場合、何か他のものを見つけます。

いくつかのLinux VMを作成し、そのような接続の問題を再現しようとしました。AWSからキーペアの名前を尋ねられたときに、空白スペース( "")およびドット( "。")を使用しないでくださいキーペア名では、AWSでさえ実際に許可されています。

例キーペアに「AWS.FREE.LINUX」という名前を付けると、接続は常に拒否されます。 「AWS_FREE_LINUX」という名前を付けると、すべて正常に機能します。

これが少し役立つことを願っています。

2
Michael Zhang

私にとっては、FileZillaに秘密鍵がどこにあるかを伝える必要がありました。

  1. メインメニューから[編集]> [設定]を選択します。
  2. [設定]ダイアログボックスで、[接続]> [SFTP]に移動します。
  3. [キーファイルの追加...]ボタンをクリックします
  4. 目的のPEMファイルに移動して選択します
1
Rob Stoecklein

同じ問題がありました。Public IPの代わりにPublic DNSを使用しました。今すぐ解決しました。

0
user3966432

OpsWorksを使用していて、AWS Cli上のWindowsマシンから新しい既存のLinuxインスタンスを登録したかった。

最初の問題は、PuTTYが生成した.pkkファイルを使用しなければならなかったことです。

2番目の問題は、そのような.pkkファイルへの絶対パスquoteが必要だったことです。

aws opsworks register --infrastructure-class ec2 --ssh-username ec2-user --ssh-private-key "C:\ key.ppk"

0

複数のインスタンスに基づいて、キーファイルとユーザー名が正しい場合、これはルートユーザーに関連付けられた特定のディレクトリ権限を変更するときに発生するようです。

0
Karan Modi

同様の問題が今日私にも起こりました。私もこれについて多くを検索しました。誰も助けません。 2つの変更を加えただけで、適切に機能するようになりました。

  1. 私が訪れたのは Amazonのドキュメント ここで、コンピューターからポート22(SSH)へのトラフィックを許可するルールがあることを確認し、存在しない場合は作成して「セキュリティグループ」を編集し、「SSH 「私のIPに。これは役立ちます。
  2. 私の場合、PuTTYプロファイルでは、.ppkファイルで再度認証する必要があります。何も変更せずに、もう一度質問する理由はわかりません。

それがあなたを助けることを願っています。

0
Asharam Seervi

私の場合、問題はppkファイルが%USERPROFILE%.sshフォルダーではなく%USERPROFILE%\ Downloadsに置かれたことです。

ファイルを移動した後、問題は消えました。

0
avp