Amazon ec2インスタンスを使用したいのですが、次のエラーが発生しました。
Permission denied (publickey).
キーペアを作成して .pem fileをダウンロードしました。
与えられた:
chmod 600 pem file.
その後、このコマンド
ssh -i /home/kashif/serverkey.pem [email protected]
しかし、このエラーがあります:
Permission denied (publickey)
また、 filezillaに接続してファイルをアップロード/ダウンロードする方法を教えてください。
このエラーメッセージは、認証に失敗したことを意味します。
これらはそれを引き起こすことができる一般的な理由です:
ubuntu
は、ubuntuベースのAWSディストリビューションのユーザー名ですが、ec2-user
(またはBogdan Kulbidaの回答によると、一部のDebiansではadmin
)です(root
、Fedora
、下記も参照)。EC2インスタンスの1.
ファイルをめちゃめちゃにした場合も/home/<username>/.ssh/authorized_keys
が発生することに注意してください。
2.
については、どのユーザー名を使用すべきかについての情報がAMI Imageの説明から欠けていることがよくあります。しかし、いくつかはAWS EC2のドキュメントにあります。箇条書きの4.
: http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
インスタンスに接続するには、sshコマンドを使用します。秘密鍵(.pem)ファイルとuser_name @ public_dns_nameを指定します。 Amazon Linuxの場合、ユーザー名はec2-userです。 RHEL5の場合、ユーザー名はrootまたは ec2-user のいずれかです。 Ubuntuの場合、ユーザー名は ubuntu です。 Fedoraの場合、ユーザー名は Fedora または ec2-user のいずれかです。 SUSE Linuxの場合、ユーザー名は root です。そうではなく、ec2-userとrootが機能しない場合は、AMIプロバイダに確認してください。
最後に 、認証が失敗する理由は他にもたくさんあることに注意してください。この質問に対する他の多くの答えで説明されているように、SSHは通常あなたのSSHコマンドに-v
オプションを追加してその出力を読むことを気にかけたならば何が悪かったかについてかなり明白です。
この場合、問題はキーペアの紛失から生じます。これについて:
次の手順に従ってください。
一般に、EC2インスタンスがインバウンドSSHトラフィックを受け付けるようにする必要があることを忘れないでください。
これを行うには、EC2インスタンスのセキュリティグループに対して特定のルールを作成する必要があります。あなたはこれらのステップに従うことができます。
これが私を助けたように誰かを助けることができると思います。
これが私が問題を解決した方法です
ssh -i <key> ec2-user@<ec2 ip>
私はSudo
を前に置くだけで問題を解決しました
Sudo ssh -i mykey.pem myec2.amazonaws.com
しかし、適切な解決策は、所有権を最初に変更し、次にJanus Troelsenが以下に述べるように普通のユーザーとして接続することです。私の場合、それはそうなるでしょう:
chown wellington:wellington key.pem
使ってみる
Sudo ssh -i mykey.pem ubuntu@<ec2_ip_public_dns>
OR
Sudo ssh -i mykey.pem ec2-user@<ec2_ip_public_dns>
このエラーのもう一つの考えられる原因:
ユーザーの ホームディレクトリがグループ書き込み可能 の場合、ユーザーはログインできません。
(Ubuntuインスタンスに再現)
次の手順を実行する必要があります。
cd <path to your .pem file>
chmod 400 <filename>.pem
ssh -i <filename>.pem ubuntu@<ipaddress.com>
ubuntu
ユーザーが働いていない場合はec2-user
を試してください。
ubuntu 12.04 ltsマイクロインスタンスの場合、オプションとしてユーザー名を設定する必要がありました
ssh -i pemfile.pem -l ubuntu dns
私は明らかにのためにエラーを拒否し、同じ許可で苦労しました
key_parse_private2: missing begin marker
私の状況では、原因は現在のユーザーのssh設定ファイル(〜/ .ssh/config)でした。
以下を使用してください。
ssh -i ~/myKey.pem ec2-user@<IP address> -v 'exit'
初期出力は以下のとおりです。
debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Hostname has changed; re-reading configuration
debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
...多くのデバッグ行がここに入ります...
debug1: Next authentication method: publickey
debug1: Trying private key: /home/ec2-user/somekey.pem
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
上の3行目は、実際に問題が特定された場所です。しかし、私はデバッグメッセージを下から4行目(上)で探していましたが、誤解されました。キーに問題はありませんが、私はそれをテストして他の構成を比較しました。
私のユーザーのssh設定ファイルは、以下に示すように、意図しないグローバル設定によってホストをリセットしました。最初のHost行はコメントではありませんでした。
$ cat config
StrictHostKeyChecking=no
#Host myAlias
user ec2-user
Hostname bitbucket.org
# IdentityFile ~/.ssh/somekey
# IdentitiesOnly yes
Host my2ndAlias
user myOtherUser
Hostname bitbucket.org
IdentityFile ~/.ssh/my2ndKey
IdentitiesOnly yes
私は他の誰かがこれが参考になることを願っています。
Ubuntuインスタンスに接続するときに、ユーザー名(ubuntu)を追加するのを忘れました。だから私はこれを試してみました:
ssh -i /path/my-key-pair.pem my-ec2-instance.amazonaws.com
そして正しい方法は
ssh -i /path/my-key-pair.pem [email protected]
これは私に何度も起こりました。私はAmazon Linux AMI 2013.09.2とUbuntu Server 12.04.3 LTSを両方とも無料利用しています。
インスタンスを起動するたびに、アクセス許可が表示されるのを拒否しました。私はこれを確認していませんが、私の理論では、サーバにSSHで接続しようとする前にサーバは完全にセットアップされていません。許可を拒否して数回試行した後、数分待ってから接続できます。あなたがこの問題を抱えているならば、私は5分待ってからやり直すことを勧めます。
同じことが私にも起こりましたが、起こったことのすべては私のローカルマシン上のキーチェーンから秘密鍵が失われたことです。
ssh-add -K
キーを追加し直してから、接続するsshコマンドを実行しました。
私自身の場合は、次のようにしました。
chmod 400 <key.pem>
ssh -i <key.pem> ec2-user@ec2_public_dns (for debian)
私は最初root@
パートを使用していました、そして私はこのプロンプトを得ました:
Please login as the user "ec2-user" rather than the user "root".
これはこのエラーを生成する可能性があるイライラするシナリオです:
別のインスタンスで作成したAMIから新しいインスタンスを起動する場合(インスタンスxyzなど)、新しいインスタンスはインスタンスAが使用したのと同じキーのみを受け入れます。これは完全に理解できますが、新しいインスタンスを作成するステップバイステップのプロセスで、うまくいかないキーを選択または作成するように求められるため、混乱します。
作成または選択したキーに関係なく、たとえばXYZなどに使用していたキーのみが新しいインスタンスに受け入れられます。
私は次のことがわかるまでしばらくの間、これに苦労しました。
eb ssh
プロジェクトディレクトリからそれを使うと、bingo-bango no muss no fussになります。
やってみると
ssh -i <.pem path> root@ec2-public-dns
ec2-user
を使用するように促すメッセージが表示されます。
Please login as the user "ec2-user" rather than the user "root".
だから使う
ssh -i <.pem path> ec2-user@ec2-public-dns
私は同じ問題を抱えていて、それは非常に奇妙です。あなたがこれに従うよりもすべてうまくいっているとあなたが信じるならば:時々EC2インスタンスのためにユーザについての混乱があります! ec2-user、ubuntu、centosなどが表示されることがあるので、ユーザー名を調べてmachieを確認してください。
rootユーザーでログイン ssh -i yourkey.pem (400 permission) root@<ip>
エラーが発生し、利用可能なユーザー名が表示されます 。その後、そのユーザーでログインします。
この問題は、下記のコマンドを使用してUbuntuボックスにログインすることで解決できます。
ssh -i ec2key.pem ubuntu@ec2-public-IP
これは基本的なことですが、ログインを試行しているユーザーを必ず確認してください。 Im私の場合、 は気を散らすものでした 。 root / userを使ってみました。
ssh -i ~/keys/<key_name> [email protected]
しかし、 他のユーザー :
ssh -i ~/keys/<key_name> [email protected]
私は同じエラーがありましたが、状況が異なりました。私にはそれは私がそこに私のリモートコンピュータに正常に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は許可なしに再び動作するようになりました(公開鍵)こと。
あなたはこれらのいくつかのことをチェックしなければなりません:
私は同じ問題を抱えていた、そして私がユーザー名をubuntuに変更した後それは解決した。 AWSでは、ドキュメントはユーザーec2-userに言及されていましたが、どういうわけか私にはうまくいきません。
私は2回キーとsshコマンドラインを正しく持っていました(私は動作しているUbuntu 14.04インスタンスを複製しているので知っています)が、上のWade Andersonが示唆したように5分待っても新しいインスタンスにsshできませんでした。
私は機械を破壊して作り直さなければならなかった。これは2つの異なる機会に起こりました。最初は入ることができないので、何が悪いのかわかりません。
あなたがこの問題を抱えているのであれば、それを試してください。
私の秘密鍵はパーミッション400
に設定されていて、パーミッションがそれを '644'に設定することで私を助けました。
key_load_private_type:権限が拒否されました は私が取得していた特定のエラーです
解決策: Sudo chmod 644 <key.pem>
注:644に設定する必要があります、それは400で動作していませんでした
大文字と小文字が区別されます。
間違った:SSH EC2-user @XXX.XX.XX.XX -i MyEC2KeyPair.pem
SSH ec2-user @XXX.XX.XX.XX -i MyEC2KeyPair.pem
考えられる別の問題:間違ったログインID
「使用方法」を確認してください
上記のすべての良い提案、しかし私が遭遇したのは私が既製のインスタンスを選択したということでした。インスタンスが起動したら、使用方法を確認してください。 「bitnami」を使用すると想定されていたときに、秘密鍵のログインIDを誤って使用しました(例:bitnami @ domain -i key.pem)
私は同様のエラーがありました
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
の下のAdvanced details:
からの起動時スクリプトのエラーのため、インスタンスが正しく起動しなかったことです。
私が入力したと思ったもの:
#include
https://xxxx/bootstrap.sh
実際に入力したものがインスタンスの設定を壊す
#include
https://xxxx/bootstrap.sh
インスタンス側の公開鍵は作成されませんでした