RSAキーのフィンガープリント-GitHubが一致しませんか?
これらのRSAフィンガープリントがどのように機能するのか疑問に思っています。GitHubアカウントを持っており、ssh接続をセットアップするためのRSAキーペアを作成しました。次に、指示に従いました...初めてGitHubに接続すると、RSAフィンガープリントが表示さSHA256:nThbkt6JwfF............
れます。学習プロセスでこれを行っているので、これが何を意味するのかをグーグルで検索し、RSAキーからフィンガープリントを生成しようとします。私のGitHubアカウントのものと一致しますか?しかし、そうではありません、私が使用した後に得られるものssh-keygen -lf ~/.ssh/id_rsa
は同じではありませんSHA256: t6Rjff8djE........
与えられた指紋が正当であるかどうかを確認するために、ここで私のアプローチで何か間違ったことをしていますか?
回答
SSHには、2つのパブリック-プライベートキーペアが必要です。1つはサーバー側に、もう1つはクライアント側にあります。単純なサームでは、サーバーに送信されるものを暗号化する場合、サーバーの公開鍵を使用します(サーバーの秘密鍵を使用してサーバー側で復号化されます)。サーバーがあなたに何かを送信するとき、それはあなたの公開鍵を使用しています(あなたはあなたのマシンに保存されているあなたの秘密鍵を使用してそれを解読しています)。
サーバーは指紋を提示しています(証明書の指紋ではありません)。したがって、サーバーによって提示された公開鍵を検証できます。通常、指紋はキャッシュされるため、sshは次回プロンプトを表示しません。
githubで公開鍵を構成するときは、基本的に、認証と鍵交換に使用する鍵をgithubに指示します。このキーがあなたからのものであるというGithubの「信頼」により、アップロードするパスワードを使用して自分自身を認証していることになります。理論的には、データを復号化できるのはあなただけです。対応する秘密鍵を持っているのはあなただけです。キーをアップロードすることで、マシンとGitHubサーバーの間に信頼関係を確立します。
アップロードしたキーのフィンガープリントがマシンのキーのフィンガープリントと異なる場合は、次の原因が考えられます。
- 間違ったキーの指紋。
- 生成コマンドを複数回実行すると、元のキーが上書きされました。
- サーバーからの指紋(サーバーフィンガープリント)と独自の証明書フィンガープリントを混同します。