Git
章 ▾ 第2版

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

SSH公開鍵の生成

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

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

id_dsaまたはid_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