@kyanny's blog

My thoughts, my life. Views/opinions are my own.

GitHub アカウントに SSH 公開鍵を追加するときの挙動

docs.github.com

  • SSH 公開鍵は認証用(Authentication Key)とコミット署名用(Signing Key)という二種類の追加方法がある
  • 他のアカウントに追加済みの SSH 公開鍵は追加できない。Key is already in use というエラーになる
  • ただし、自分のアカウントに追加済みの SSH 公開鍵を、まだ追加してない用途で追加することはできる
    • ある公開鍵を認証用に追加済みの場合、署名用に同じ公開鍵を追加できる
    • 逆も然り
  • SSH キーでコミットに署名する際は SSH 公開鍵を使うので、「GitHub アカウントに追加済みの公開鍵は https://github.com/USERNAME.keys から誰でも見れるから、ダウンロードした他人の公開鍵で署名してなりすましできちゃうのでは?」と思って試してみたら、その公開鍵を自分のアカウントには追加できない仕組みになっていて、なりすましは防がれていた