警告:保護されていないプライベートキーファイル! Amazon EC2インスタンスにSSHしようとするとき
-
03-07-2019 - |
質問
私は、Amazon EC2インスタンスでPandaをセットアップするために働いています。 昨夜、アカウントとツールをセットアップし、SSHを使用して個人のインスタンスと対話することに問題はありませんでしたが、現在、PandaのEC2インスタンスへのアクセス許可はありません。 Pandaの使用開始
次のエラーが表示されます:
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
Permissions 0644 for '~/.ec2/id_rsa-gsg-keypair' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
昨夜、個人のインスタンスに入るためにキーペアを600に変更し、アクセス許可を0に設定し、新しいキー文字列を生成することを試みましたが、何も機能していないようです。
すべてのヘルプは非常に役立つでしょう!
うーん、ディレクトリのアクセス許可が777に設定されていない限り、ec2-run-instancesスクリプトはキーファイルを見つけることができません。 私はSSHが初めてなので、何かを見落としているかもしれません。
解決
昨夜、個人のインスタンスに入るために、キーペアを600に変更しました
そして、これが本来の方法です。
EC2ドキュメントには、&quot ; OpenSSH(または合理的に偏執的なSSHクライアント)を使用している場合は、おそらくこのファイルのアクセス許可を設定して、自分だけが読み取れるようにする必要があります。" リンク先のPandaドキュメントAmazonのドキュメントは、実際にはそれがどれほど重要かを伝えていません。
キーペアファイルはパスワードのようなものであり、保護する必要があるという考え方です。したがって、使用しているsshクライアントでは、これらのファイルを保護し、アカウントのみがそれらを読み取ることができる必要があります。
ディレクトリを700に設定するだけで十分ですが、ファイルが600である限り777でも問題はありません。
発生している問題はすべてクライアント側にあるため、フォローアップの質問には必ずローカルOSの情報を含めてください!
他のヒント
秘密鍵ファイルを含むディレクトリが 700
に設定されていることを確認しますchmod 700 ~/.ec2
これを修正するには、1)パーミッションをデフォルトにリセットする必要があります:
sudo chmod 600〜/ .ssh / id_rsa
sudo chmod 600〜/ .ssh / id_rsa.pub
別のエラーが発生する場合: 接続を続行してもよろしいですか(はい/いいえ)?はい ホストを既知のホスト(/home/geek/.ssh/known_hosts)のリストに追加できませんでした。
2)これは、そのファイルの権限も正しく設定されていないことを意味し、これで調整できます:
sudo chmod 644〜/ .ssh / known_hosts
3)最後に、ディレクトリのアクセス許可も調整する必要がある場合があります。
sudo chmod 755〜/ .ssh
これにより、バックアップと実行が可能になります。
秘密鍵ファイルは保護する必要があります。私の場合、私は長い間public_key認証を使用しており、プライベートキーと644(rw- r-- r--)の600(rw- --- ---)とホームフォルダーの.sshフォルダーには、700のアクセス許可があります(rwx --- ---)。これを設定するには、ユーザーのホームフォルダーに移動し、次のコマンドを実行します
.sshフォルダーに 700 権限を設定します
chmod 700 .ssh
秘密鍵ファイルに 600 権限を設定します
chmod 600 .ssh/id_rsa
公開鍵ファイルの 644 権限を設定
chmod 644 .ssh/id_rsa.pub
同じ問題もありましたが、キーファイルのアクセス許可を600に変更することで修正しました。
sudo chmod 600 /path/to/my/key.pem
リンク: http://stackabuse.com/how-to-fix-warning-unprotected-private-key-file-on-mac-and-linux/
Windowsでは、git bashを使用して、そこでLinuxコマンドを使用してみてください。簡単なアプローチ
chmod 400 *****.pem
ssh -i "******.pem" ubuntu@ec2-11-111-111-111.us-east-2.compute.amazonaws.com
秘密鍵、公開鍵、known_hostsを同じディレクトリに保存し、以下のようにログインしてみてください:
ssh -I(small i) "hi.pem" ec2-user@ec2-**-***-**-***.us-west-2.compute.amazonaws.com
- ある意味で同じディレクトリ、
cd / Users / prince / Desktop
。 次に、ls
コマンドを入力します そして、あなたは見るはずです**。pem **。ppk known_hosts
注:同じディレクトリからログインする必要があります。そうしないと、現在のディレクトリから.pemファイルが見つからないため、アクセス許可拒否エラーが表示されます。
任意のディレクトリからSSHを使用できるようにする場合は、次のコードを〜/ .ssh / config
ファイルに追加できます...
Host your.server
HostName ec2-user@ec2-**-***-**-***.us-west-2.compute.amazonaws.com
User ec2-user
IdentityFile ~/.ec2/id_rsa-gsg-keypair
IdentitiesOnly yes
ssh your.server
(または" Host"の後に付ける名前)を入力するだけで、ディレクトリの場所に関係なくサーバーにSSH接続できます。
別のことを考えています。存在しない別のユーザー名でログインしようとすると、これが表示されるメッセージです。
だから、ec2-userでsshしようとしていると思いますが、最近、たとえばほとんどのcentos AMIがec2-userの代わりにcentos userを使用していることを思い出します
だからあなたが
ssh -i file.pem centos @ public_IP
正しいユーザー名でsshを実行しようとしていることを教えてください。 .ssh / id_rsaまたはfile.pem
これにつまずく人のためのメモ:
あなたと共有されているキーを使用してSSHしようとしている場合、たとえば:
ssh -i /path/to/keyfile.pem user @ some-host
keyfile.pem
が共有されている秘密/公開キーであり、それを使用して接続している場合、必ず〜/ .ssh / <に保存してください/ code>および
chmod 777
。
ファイルを自分のマシンの別の場所に保存しようとしたときに、OPのエラーが発生していました。直接関連しているかどうかはわかりません。