私が知っているのは、マシン(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部分は特に敏感ではありません。危険なしに配布および開示されることがあります。一致する秘密鍵(および秘密鍵のパスワード)がなければ、ほとんど役に立ちません。
もちろん、鍵ペアの秘密部分は秘密にしておく必要があります。