チャプター ▾ 第2版

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

SSH公開鍵の生成

多くのGitサーバーはSSH公開鍵を使って認証します。公開鍵を提供するためには、システム内の各ユーザーは、まだ持っていない場合は鍵を生成する必要があります。このプロセスはすべてのオペレーティングシステムで似ています。まず、すでに鍵を持っていないか確認する必要があります。デフォルトでは、ユーザーの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