😊
Git/GitHubを安全・快適に!SSHと公開鍵認証の仕組みから設定まで
1.SSHとは?(安全なトンネル)
SSH (Secure Shell) は、ネットワーク経由で安全に通信するための技術のこと。
データを暗号化することで、盗聴や改ざんを防ぎ、まるで安全なトンネルを通すように通信します。
2. 公開鍵認証の仕組み
SSH認証では公開鍵暗号方式の原理を応用した「デジタル署名」という非常に強力な仕組みを使います。この仕組みによって、パスワードを知らなくても、あなたが秘密鍵の正当な所有者であることをサーバーに証明できます。
- 秘密鍵 (Private Key):あなただけが持つ鍵のこと。認証時にはこの鍵でサーバーからの情報に「署名(サイン)」を行い、本人の証明として使用します。絶対に外部に漏らしてはいけません。
- 公開鍵 (Public Key):誰にでも渡してOKな鍵のこと。GitHubなどのサーバーに登録し、秘密鍵で行われた署名が正しいかどうかを「検証」するために使用します。
- 認証の流れの要点:
- 公開鍵をGitHubに登録。
- GitHubは登録された公開鍵でデータを暗号化し送信。
- PCが手元の秘密鍵でそのデータを復号。
- 復号が成功すれば、GitHubが秘密鍵を持っている本人だと確認しアクセスを許可。
- この自動的な鍵のやり取りにより、パスワードの入力なしで安全に認証が完了します。
3. GitとGitHubで使うメリット
SSH認証を使う最大の利点は、以下の2点です。
- パスワード入力不要: 毎回認証情報を入力する手間がなくなります。
- 高い安全性: パスワードよりも安全な方法で、機密性の高い通信が行えます。
4. 実践!SSH設定の3ステップ
ステップ1: 鍵ペアの作成ターミナルまたはGit Bashで以下のコマンドを実行し、秘密鍵と公開鍵のペアを作成します。
bash $ ssh-keygen -t ed25519 -C "your_email@example.com"
- ed25519は現在推奨される安全性の高い暗号方式です。
- 途中で聞かれるパスフレーズは必ず設定し、鍵を保護しましょう。鍵は通常
bash ~/.ssh/id_ed25519(秘密鍵)、bash ~/.ssh/id_ed25519.pub(公開鍵)として保存されます。
ステップ2: 公開鍵をGitHubに登録
作成された公開鍵ファイル(.pubが付くファイル)の中身をコピーします。
bash # Mac/Linuxの場合 $ cat ~/.ssh/id_ed25519.pub
- GitHubにログインし、「Settings」 > 「SSH and GPG keys」を開きます。
- 「New SSH key」ボタンを押し、コピーした公開鍵の中身を貼り付けて登録します。
ステップ3: SSHアドレスを使う
Gitリポジトリを操作する際、SSH形式のアドレスを使います。
- SSH形式:
bash git@github.com:user/repo.git - HTTPS形式: https://github.com/user/repo.git
リポジトリをクローン(取得)する際は、git clone git@github.com:user/repo.git のようにSSHアドレスを指定しましょう。これで、皆さんのGit操作が安全かつ非常に快適になります。
0.この記事を書くにあたって学んだこと
- 「##」+「半角スペース」で見出し2を作成できること
- 「-」+「半角スペース」でリストになること
- そうやって整えた見た目があってようやく「記事といえる」こと
Discussion