web-dev-qa-db-ja.com

sshを使用してWindows 10 CMDからEC2 Linuxインスタンスに接続できない

_EC2_(_Linux OS_)を実行している実行中の_Amazon Linux AMI release 2018.03_インスタンスがあります。

_Windows 10_がコマンドプロンプトでSSHクライアントを使用できる場合、SSHプライベートキー(_EC2_ファイル)をSSHによってキーペアとして提供され、_.pem_インスタンスにAWS _EC2_インスタンスの設定。

cmdで使用しているコマンドは次のとおりです。

_ssh -i private_key.pem [email protected]
_

ここで_private_key.pem_は、AWSによって提供される秘密鍵ファイルの名前です。

しかし、エラーが発生し続けます。

_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'private_key.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "private_key.pem": bad permissions
[email protected]: Permission denied (publickey).
_

私が明確にしたいいくつかのこと:

  1. StackOverflowにも同様の質問があります。これらの質問には、実際には、MacOS/LinuxUNIXベースのOS)を実行しているホストから_EC2_インスタンスへの接続を試みることが含まれます。私の場合、コマンドプロンプトを使用してWindows 10ホストから接続しようとしています。

  2. (1)で説明したような他の質問への回答として、秘密鍵ファイル(_.pem_)ファイルのファイル権限を読み取り専用(_chmod 444 file.pem_)に変更することを提案する人がいます。それに応じて、_.pem_ファイルを、Windowsのファイルプロパティから読み取り専用として作成しようとしました。これは助けにはなりませんでした。同じエラーが発生し続けます。

  3. Windows 10のcmdから他のリモートLinuxホストに接続できます。これは、Windows 10のSSHクライアントに問題がないことを示唆しています。

  4. この接続は、PuTTYの代わりにCMDを使用することで簡単にできることはわかっていますが、それがこの質問の目的ではありません。いくつかの制約のため、PuTTYを使用できないと仮定してください。

任意の助けいただければ幸いです。

5
DockYard

Windows 10では、問題のPEMファイルを見つけて右クリックします。

プロパティ->セキュリティ->詳細から:
1。ユーザーがファイルの所有者であることを確認してください
2。特にユーザーにRead&Execute権限を付与します。
他のユーザーまたはグループのファイルに対する他のすべての権限を削除する。

enter image description here

2
Adi Dembak

その通りです-それは、Windowsのアクセス許可モデルがLinuxとは異なるためです。

詳細: Linuxファイルの権限について-Linux.com

問題を修正する方法のヒントはたくさんあります。 this このリポジトリからのスクリプトを適用することをお勧めします: openssh-portable

ソースコード

。概要セキュアファイルACLを設定します。 1. Administratorsグループ、システム、現在のユーザーを除くすべてのユーザーACLを削除2.所有者を取得するかどうか.Outputs N/A .Inputs FilePath-ファイルtakeownerへのパス-所有権を取得する場合

0
Yasen