Skip to main content
すっさんぽ
  1. Posts/

ssh-keygenコマンドの-Cオプションで入力する内容について

GitHubに登録する公開鍵を作成する際に使用する ssh-keygen のコマンドの使用例に思うことがあったので、書いておこうと思います。

-Cオプションで渡すコメントは、メールアドレスじゃなくても良いと思う #

GitHubのドキュメントでは、登録する公開鍵の作成方法として、以下のコマンドが紹介されています。

$ ssh-keygen -t ed25519 -C "your_email@example.com"

GitHubのドキュメントでは「メールアドレスは自分の GitHub メールアドレスに置き換えてください」と解説されています。

このコマンドを実行すると、以下のような鍵が生成されます。

SHA256:xxxxxxxxxxxxx your_email@example.com

鍵の文字列の後ろに、-Cオプションで渡したメールアドレスが記載されています。

ところで、 -Cオプションは、鍵にコメントを付けられるオプションです。コメントであれば、別にメールアドレスである必要はないはずです。

コメントは空でも良い #

DevelopersIOの記事「sshの鍵を作るときにちょっとだけ気にしたいこと」でも紹介されていますが、空にするのも良いと思います。

自分が鍵を区別できるなら、わざわざメールアドレスを書く必要なんかないはずです。

$ ssh-keygen -t ed25519 -C ""

こうしておけば、生成される鍵に、メールアドレスが含まれることはありません。 なお、-Cオプションを省略すると、ユーザー名とホスト名がコメントとして記載されるので、空にする場合は-C ""とする必要があります。

鍵を区別するためのラベルでも良い #

GitHubとBitbucketを使用しているユーザーなら、GitHubにはED25519、BitbucketにはRSAの鍵を使用するように設定できるので、複数の鍵を作ることもあるでしょう。また、ユーザー(コマンドやアプリケーション)ごとに、鍵を分けたいこともあるかもしれません。そういった状況では、鍵のコメントがメールアドレスだと、逆に区別がつかないのではないでしょうか。

鍵をしっかり区別できるように、以下のようなコメントで、適用先や用途が分かるようにしておくほうが良さそうです。

$ ssh-keygen -t ed25519 -C "GitHub(My Account Name)" -f ~/.ssh/id_github_ed25519
$ ssh-keygen -t rsa -b 2048 -C "Bitbucket(My Account Name)" -f ~/.ssh/id_bitbucket_rsa

これを実行することで、コメント欄に用途が記載された鍵を作ることができます。

SHA256:xxxxxxxxxxxxx GitHub(My Account Name)

メールアドレスよりも、実用的な雰囲気があります。

このようにしておけば、テキストチャットで鍵を渡すことになっても、コメントで用途がはっきりわかるので安心です。 ファイル名が適切についていれば問題はない状況が多そうですが、コメントも活用することで、鍵の取り扱いがしやすくなりそうです。

慣習に倣うのも大事かも #

最初に例示した「コメントのオプションにメールアドレスを渡す」コマンドは、GitHubのみならずssh-keygenの使い方を紹介する他のサイトでも紹介されています。また、ssh-keygenのデフォルトでは「account名@host名」がコメントとして付与されるようになっています。こういったことから、コメントにメールアドレスを使うのは自然かもしれません。ssh-keygenの慣習ということかなと思います。

慣習に倣わないことで、運用に不都合が出ることもあるかもしれません。無理に「コメントなんだから何書いてもいい」とする必要もないと思います。そこは、環境に合わせたやり方で良いと思います。