まったく間違っていませんが、間違っています。(a) 秘密鍵は公開鍵によって暗号化されたデータを復号化し、(b) 公開鍵は秘密鍵によって暗号化されたデータを復号化します。
(a): 誰でも何かを暗号化できますが、秘密鍵の所有者だけが復号化できます。
(b): 所有者が自分の秘密鍵で何かを「暗号化」すると、誰もがそれを復号化できます。つまり、データを暗号化するのは他の誰かではなく、実際には所有者であるということです。
git(hub) は 2 番目のシナリオを利用します。何かをプッシュすると、秘密鍵で署名されます。受信者は、あなたから知っている公開鍵に対して署名を検証します。一致する場合は、すべて問題ありません。
更新:何が起こるかについての(おそらくあまりにも)簡略化された説明(sshでgithubを使用する場合)
- Github は、彼の_private_ キーで暗号化されたランダムなものを送信します (ランダムではないかもしれませんが、わかりませんが、ここでは問題ではありません)。
- あなたはそれを受け取り、彼の_公開_鍵で解読します。これが可能であれば、あなたは本当に公式のgithubサーバーと話していると確信しています.
- 次に、 _private_ キーで暗号化された同じランダムなものをgithub-server に送信します
- 彼はあなたの公開鍵で暗号化しようとします。これが可能で、それが彼が以前にあなたに送ったランダムなものである場合、彼はあなたがあなたであることを確信しています.
- 次に、彼の公開鍵で暗号化したものを送ります。これで、github サーバーのみが復号化できます。また、彼はあなたの_公開_キーで暗号化されたメッセージ/データで応答します。これは、あなただけが解読できるためです。
完全に正しくなくても、アイデアを説明する必要があります。