チャプター ▾ 第2版

4.3 サーバー上のGit - SSH公開鍵の生成

SSH公開鍵の生成

多くのGitサーバーはSSH公開鍵を使用して認証します。公開鍵を提供するためには、システム内の各ユーザーがまだ公開鍵を持っていない場合は生成する必要があります。このプロセスはすべてのOSで同様です。まず、すでに鍵を持っているかどうかを確認する必要があります。デフォルトでは、ユーザーのSSH鍵はそのユーザーの~/.sshディレクトリに保存されます。そのディレクトリに移動して内容をリスト表示することで、すでに鍵があるかどうかを簡単に確認できます。

$ cd ~/.ssh
$ ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub

id_dsaid_rsaのような名前のファイルのペアと、.pub拡張子を持つ対応するファイルを探します。.pubファイルは公開鍵であり、もう一方のファイルは対応する秘密鍵です。これらのファイルがない場合(または.sshディレクトリさえない場合)、Linux/macOSシステムではSSHパッケージに、Git for Windowsには付属しているssh-keygenというプログラムを実行することで作成できます。

$ ssh-keygen -o
Generating public/private rsa key pair.
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
Created directory '/home/schacon/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/schacon/.ssh/id_rsa.
Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

まず、鍵の保存場所(.ssh/id_rsa)を確認し、次にパスフレーズを2回尋ねられます。鍵を使用する際にパスワードを入力したくない場合は、空のままにすることができます。ただし、パスワードを使用する場合は、-oオプションを追加するようにしてください。これにより、秘密鍵がデフォルトの形式よりもブルートフォース攻撃によるパスワード解読に強い形式で保存されます。毎回パスワードを入力する必要がないように、ssh-agentツールを使用することもできます。

さて、この手順を実行した各ユーザーは、公開鍵をあなた、またはGitサーバーを管理している人に送信する必要があります(公開鍵を要求するSSHサーバー設定を使用している場合)。彼らは.pubファイルの内容をコピーしてメールで送信するだけです。公開鍵は次のような形式です。

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local

複数のオペレーティングシステムでのSSH鍵の作成に関するより詳細なチュートリアルについては、GitHubのSSH鍵に関するガイド(https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)を参照してください。

scroll-to-top