ssh-keygenコマンドの-Cオプションで入力する内容について
Table of Contents
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
の慣習ということかなと思います。
慣習に倣わないことで、運用に不都合が出ることもあるかもしれません。無理に「コメントなんだから何書いてもいい」とする必要もないと思います。そこは、環境に合わせたやり方で良いと思います。