質問: sshキーを正しく使用していますか? 最近作成しましたキーペア経由ssh-keygen -t rsa -f ~/.ssh/my_keyname -c pebaken そこで、ホームユーザーディレクトリにある.sshフォルダを調べたところ、2つのキーが見つかりましたmy_keyname.pubとmy_keyname、および 'authorized_keysというフォルダ。 '公開鍵を使用してみましたmy_keyname.pub接続中にvmエラーが発生しました 切断済み:サポートされている認証方法はありません(送信されたサーバー:公開鍵) 公開鍵はあなたが保持しているものであり、秘密鍵はサーバーにとどまると思いましたか?次に、拡張子なしでキーを試し、puttygenに入れて、すぐにメッセージを受け取りました 外部キー(openssh ssh-2秘密鍵(古いpem形式))が正常にインポートされました。 このキーをputtyで使用するには、「saveprivate」コマンドを使用してputty独自の形式で保存する必要があります。 秘密鍵を使用しているのは、それが機能し、vmに正常に接続できたからです。
回答: 公開鍵はあなたが保持しているものであり、秘密鍵はサーバー上にとどまると思いました キーベースの認証を使用してsshサーバー(通常はリモート、外部、信頼されていない)にログインするシナリオでは、秘密キーは秘密であり、マシン上のアカウント、つまりsshに属しますクライアント。通常、(将来の)sshクライアントでキーペアを生成してから、公開キーをサーバー(または複数のサーバー)に配布します。サーバーはauthorized_keysを使用して公開鍵を保存します。このようにして、最も秘密の秘密鍵(この場合はmy_keyname)が自分のマシンから離れることはありません。明確ではありませんが、サーバーとして使用する予定のマシンでキーペアを生成したと思います。 秘密鍵はサーバーに残りますか? 生成された場所にとどまる必要がありますが、そもそもクライアント側で生成されている必要があります。 puttyはsshクライアントです。キーを生成するためのputtygenという名前のコンパニオンツールがあります。フォローアップの質問への回答(opのコメントから): opに記載されているコマンドを使用して鍵を作成したとき、公開鍵と秘密鍵の両方が作成されると思いました。 正しい。 ...今後は公開鍵を取得してサーバーにアクセスします。 あなたの公開鍵は...まあ、公開することを意図しています。あなたはそれを世界中のサーバーに配布することができるので、彼らはあなたがあなたであると言うことができるでしょう。これを機能させるには、対応するsecret秘密鍵を使用して認証する必要があります。 最初の質問に戻りますが、キーを正しく使用していますか?または、秘密鍵を取得して、基本的にアクセス鍵として使用しましたか? あなたdoアクセスキーとして秘密キーを使用します。そうです、あなたはキーを正しく使用しています今、しかしあなたはクライアントサーバーセットアップの「間違った」端でそれらを生成したので、あなたは1台のマシンからプライベートキーを「つかむ」必要がありましたもう1つ。 sshに精通したユーザーは、秘密鍵を保持する必要のある鍵ペアを生成し、公開鍵を他のマシンに転送するため、通常、秘密鍵を転送する必要はありません。そこ です 私が非常に誤解を招くと思うコメント(現在は削除されています)でした。これはopからのものではなく、op(または他のユーザー)を簡単に混乱させる可能性があるため、ここで取り上げます。 サーバー上で公開鍵と秘密鍵を作成し、クライアント上で公開鍵を使用する必要があります privateキーが使用される場所でキーペアを生成する必要があります。技術的には、他の場所で鍵を生成し、それぞれを最終的にあるべき場所にコピーすることは可能です(結局のところ、それらは単なるファイルです)が、重要なのは、秘密鍵は秘密である必要があります。マシン間で秘密鍵をコピーすることは、この規則に違反します。この場合、秘密鍵はクライアント(putty)を認証するためのものであるため、最初からクライアントマシンに存在している必要があります。 これにより、(データの復号化に使用される)秘密鍵を持つサーバーが(公開鍵を使用して)データを暗号化するクライアントと通信できるようになります。 いいえ。これらのキーは認証に使用されます。つまり、自分が本人であると主張していることを証明します。暗号化は別のものであり、セッションベースの対称暗号化キーによって実行されます。クライアントは、自分自身を認証するために、公開鍵がサーバーに事前に認識されている秘密鍵を必要とします。クライアントマシンでキーペアを作成し、秘密キーを配布することは、ここで行う必要があります。ただし、サーバーにはown秘密鍵(通常は/etc/ssh/、システム全体)があり、クライアントが初めて接続すると、対応する公開鍵がクライアントにプッシュされます。 known_hostsに保存されます。このようにして、クライアントは将来、この特定のサーバーが通常とまったく同じサーバーであると判断できます。クライアントが再度接続し、サーバーがまったく同じキーで認証に失敗した場合、(クライアント)ユーザーに警告が表示されます。これは、mitm攻撃を示している可能性があります。 秘密鍵(データの復号化に使用)[...]データの暗号化(公開鍵を使用) この非対称暗号化は、ここでは当てはまりません。むしろpgp/gpgでは:公開鍵で暗号化するので、秘密鍵の所有者だけが復号化できます(とにかく単純化しすぎていますが、これが概念です)。このシナリオでは、公開鍵が世界中に知られているため、誰でも暗号化できます。逆の場合もあります。自分の秘密鍵で暗号化すると、誰でも復号化して、メッセージが自分から正確に届くようにすることができます。しかし、sshではありません。ここでは、キーペアを使用して関係者を認証し、次に対称暗号化を使用します。