ssh-keygenとssh-copy-idを理解する方法は?

ssh-keygenとssh-copy-idを理解する方法は?

私が知っているのは、マシン(A)がssh-keygenキーを生成し、ssh-copy-idそのキーを別のマシン(B)に渡すのではありませんか?

ただし、これを実行した後に完了したかどうかをテストするには、sshを使用します。例:root @ A:ssh root@B これはパスワードなしでBにログインした場合に機能します。

私はこれについて混乱しています。 AはBに鍵を与えましたが、なぜAはパスワードなしでBにログインできますか?これでBにログインできます。 Bにはssh Aパスワードは必要ありません。

私の理解が間違っていますか?

ベストアンサー1

SSH 鍵は、非公開部分と公開部分の 2 つの部分で構成されます。これがまさに一緒に動作するキーペアである「キーペア」と呼ばれる理由です。

ssh-copy-id秘密鍵と公開鍵のペアのPUBLIC部分を~/.ssh/authorized_keysリモートホストにコピーします。

秘密鍵を持っていてパスワードを知っている人は、誰でもパスワードなしでそのリモートホストにログインできます。

常にパスワードを再入力する必要がないように、秘密鍵を保存するプログラムなどのssh-agentプログラムを使用できます(簡単に言えば、パスワードでロックを解除した後に秘密鍵をキャッシュします)。秘密鍵は、あなたがそうしないように指示するか、エージェントを殺すか、ログアウトするまで保持されます。望むよりman ssh-agent

セキュリティの観点から見ると、キーペアのPUBLIC部分は特に敏感ではありません。危険なしに配布および開示されることがあります。一致する秘密鍵(および秘密鍵のパスワード)がなければ、ほとんど役に立ちません。

もちろん、鍵ペアの秘密部分は秘密にしておく必要があります。

おすすめ記事