EC2は初めてです。このサイトからセキュリティ認証情報を作成しました:
http://paulstamatiou.com/how-to-getting-started-with-Amazon-ec2
うまくいきました。再起動しましたが、接続しようとするとログイン/パスワードプロンプトが表示されます。 (セットアップしたことはありません。)いくつかの試行の後、このエラーが表示されます。
許可が拒否されました(publickey、gssapi-with-mic)。
私は何を間違えていますか?
私が考えることができる2つの可能性、あなたが参照したリンクで両方とも言及されていますが:
サーバーへのログインに使用しているsshコマンドで、正しいSSHキーペアファイルまたはユーザー名を指定していません。
ssh -i [キーペアファイルへのフルパス] root @ [EC2インスタンスのホスト名またはIPアドレス]
キーペアファイルに対する適切な権限がありません。あなたは使うべきです
chmod 600 [キーペアファイル]
あなただけがファイルを読み書きできるようにします。
Sshで-vオプションを使用して、エラーの正確な発生場所に関する詳細情報を取得し、さらにヘルプが必要な場合はここに投稿してください。
[更新]:OK、だからこれはあなたがshouldすべてが正しく設定されていれば見たことです:
debug1: Authentications that can continue: publickey,gssapi-with-mic
debug1: Next authentication method: publickey
debug1: Trying private key: ec2-keypair
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Ec2-keypairファイルを含むディレクトリからsshコマンドを実行していますか?その場合、パスの問題を解消するためだけに-i ./ec2-keypairを指定してみてください。また、「ls -l [ec2-keypairへのフルパス]」ファイルをチェックし、アクセス許可が600(rw -------として表示)であることを確認します。それでもうまくいかない場合は、キーペアファイルの内容が疑われるので、リンクの手順を使用して再作成してみてください。
私が接続できる鍵は、ルートではなく「ec2-user」ユーザーを使用することでした。つまり:
ssh -i [full path to keypair file] ec2-user@[EC2 instance hostname or IP address]
私の場合、ホームディレクトリの許可が775であり、SSHがそれについて満足していないためです。実行後に動作するはずです:
server$ chmod go-w ~/
server$ chmod 700 ~/.ssh
server$ chmod 600 ~/.ssh/authorized_keys
今日の午後はとても似たような経験をしました。 EC2でDjangoを設定していましたが、突然ボックスにSSHで接続できなくなりました。まだアクティブな接続があったので、次のように/etc/ssh/sshd_config
を変更しました。
PasswordAuthentication yes
ec2-user
のパスワードを設定すると、パスワードを入力してログインできます。
しかし、いくつかのグーグル検索の後、私はこのスレッドを見つけました: http://ubuntuforums.org/showthread.php?t=577279 。 Djangoのセットアップ中に、ホームディレクトリのアクセス許可を変更したため、SSHはこれに関して非常に厳密です。したがって、ファイルのアクセス許可を正しく設定する必要があります。
私もこの問題に遭遇しましたが、ホスト名の前にユーザー名を追加するのを忘れていたことが原因であることがわかりました:このように:
ssh -i test.pem ec2-32-122-42-91.us-west-2.compute.amazonaws.com
ユーザー名を追加します:
ssh -i test.pem [email protected]
できます!
Mecca831の答えにタグ付け:
ssh -v -i generated-key.pem [email protected]
[[email protected]〜] $ Sudo passwd ec2-user newpassword newpassword
[[email protected]〜] $ Sudo vi/etc/ssh/sshd_configファイルを次のように変更します。
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no
# EC2 uses keys for remote access
#PasswordAuthentication no
セーブ
[[email protected]〜] $ Sudoサービスsshd停止[[email protected]〜] $ Sudoサービスsshd開始
次のように終了してsshできるはずです。
ssh [email protected]
キーを必要としないパスワードの入力を求められます。
+1
Amazon Linuxのような一部のAMIでは、ec2-user @ xxx.XX.XX.XXXが機能することに気付きました。しかし、ubuntuイメージの場合は、代わりにubuntu @を使用する必要がありました。ユーザー名だけで、.pemに問題はありませんでした。
適切なインスタンスを使用したことを確認しますか?この問題にぶつかり、試したubuntuインスタンスのうち4つにSSHサーバーがインストールされていないことに気付きました。
優れたサーバーのリストについては、「イメージの取得」の約半分を参照してください。他の何かを使用しているように聞こえます...これらの画像では、デフォルトのユーザー名はubuntuです。
約30分、これを検索してデバッグしようとした後、私はそれを理解することができました。私の状況では、2つの異なるec2インスタンスに同じpemファイルを使用し、一方では機能し、もう一方では機能しませんでした。
私が最初に取り組んだのは、標準のaws linux AMI amzn-AMI-hvm-2014.03.2.x86_64-ebsでした。私は単に使用しました
ssh -i mypemfile.pem ec2-user@myec2ipaddress
そしてそれは働いた。
次に、FedoraインスタンスFedora-x86_64-19-20140407-sdaを起動し、同じコマンドを試しましたが、次のようになりました:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
ユーザー名をec2-userからFedoraに変更すると、うまくいきました!
ssh -i mypemfile.pem Fedora@myec2address
Ec2-userを使用してログインできました
ssh -i [キーペアファイルへのフルパス] ec2-user @ [EC2インスタンスのホスト名またはIPアドレス]
上記のどれも私を助けませんでしたが、ユーザーとのむちゃくちゃは、それが約束を持っていたように見えました。 「ubuntu」を使用した私の設定では正しかった.....
ssh -i [キーペアファイルへのフルパス] ubuntu @ [EC2インスタンスのホスト名またはIPアドレス]
他の回答が示唆するように、パスワードの設定はお勧めしません。キーファイルを使用する方が安全(パスワードを推測できない)であり、便利です(設定ファイルを設定すると)。基本的な~/.ssh/config
:
Host my-ec2-server
HostName 11.11.11.11
User ec2-user
IdentityFile /path/to/generated-key.pem
これで、ssh my-ec2-server
そして、あなたは入っています!また、他の回答でも述べたように、-vを使用して、接続が機能していないときに追加情報を取得します。
同様の問題がありました。 MacでのSSHキーの設定と転送に使用される手順は次のとおりです。自分のためにこれらのメモを作成しました-誰かを助けるかもしれません...あなたの設定をチェックしてください。
ここでの前提は、キーのセットアップがないことです。すでにキーのセットアップがある場合は、このセクションをスキップしてください。
$ ssh‐keygen ‐t rsa ‐b 4096
パブリック/プライベートrsaキーペアの生成。
キーを保存するファイルを入力します(/Users/you/.ssh/id_rsa):[Enterを押します]パスフレーズを入力します(パスフレーズがない場合は空です):[パスフレーズを入力します]同じパスフレーズを再度入力します:[もう一度パスフレーズを入力します]
キーファイルのエントリを追加して〜/ .ssh/configを変更します。
〜/ .ssh/configは次のようになります。
ホスト *
AddKeysToAgentはい
UseKeychainはい
IdentityFile〜/ .ssh/id_rsa
秘密鍵をキーチェーンに保存します。
$ ssh‐add ‐K〜/ .ssh/id_rsa
Ssh -A username @ yourhostnameで今すぐテストしてください
キーをホスト名に転送する必要があります。キーが追加されていると仮定すると、問題なく接続できるはずです。
問題が一貫しており、ファイルのアクセス許可を400または600に変更しても10〜15回連続して発生する場合、ec2インスタンスで何か間違いがあるので、次のことを確認してください。最後に-vを追加してインスタンスにsshを実行し、特定の何かが出力されるかどうかを確認します。 2. Ubuntuなど、sshに正しい名前を使用していることを確認します。おそらくそれは、Linuxディストリビューションと追加したユーザー、および「rootユーザー」sshの許可を与えたユーザーに依存します。それでも解決しない場合は、こちらのドキュメント https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectingMindTerm に従って修正してください。私の場合は助けになりましたが、ディレクトリ/ファイルのアクセス権が台無しになったために起こりました。
PCで動作するPPKファイルがある場合は、PCのputtygen.exeを使用してOpenSSHファイルとしてエクスポートし、Mac(任意のUnixマシン)で使用します。
同じエラーが発生しました-
debug1: Authentications that can continue: publickey,gssapi-with-mic
debug1: Next authentication method: publickey
debug1: Trying private key: ec2-keypair
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,gssapi-with-mic
debug1: No more authentication methods to try.
Permission denied (publickey,gssapi-with-mic)
WindowsでPPKファイルを使用していたので、上記の手順とBingo!に従いました。
$ ssh -i ec2-openssh-key root @ ec2-instance-ip
AWS Toolkit for Eclipseを使用しても同じ問題が発生しました。 Getting Startedインスタンスを作成し、シェルを開きました。ただし、ユーザーはec2-userに設定されました。 Open Shell As ...コマンドを使用して、ユーザーをrootに設定しました。それはうまくいきました。