0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub に SSH keys を設定する

Last updated at Posted at 2024-09-30

GitHub に SSH keys を設定する

はじめに

はじめまして。

この記事では、GitHub に SSH keys を設定したいと思います。

この記事が、エンジニアとして活躍する方々に貢献ができるように書かせていただきます。

SSH 鍵を生成する

デフォルトでは、RSA 暗号を使って、SSH 鍵を生成されますが、明示的に指定して SSH 鍵を生成する場合は、以下のように生成します。

RSA 暗号とは、公開鍵暗号方式の代表例で、非常に大きな数を素因数分解することが困難なことを利用した暗号です。
ちなみに、細田守さんが監督を務めた『サマーウォーズ』で(主人公)小磯健二が解いた暗号が RSA 暗号です。

ssh-keygen -t rsa

上記の SSH 鍵は、$2048$ ビットで生成されていますが、より強力な鍵を生成したい場合は、$4096$ ビットの鍵も以下のように生成することができます。

ssh-keygen -t rsa -b 4096

私は今回は、Ed25519 というアルゴリズムを使って、生成したいと思います。理由としては、GitHub のドキュメントでも使用されていたためです。

Ed25519 は、楕円曲線を使ったアルゴリズムの一つです。
楕円曲線暗号は、RSA より短い鍵長で同等の安全性を提供できる公開鍵暗号方式です。

ssh-keygen -t ed25519

GitHub の方では、SSH 鍵にコメントをつけています。GitHub に登録してあるメールアドレスをコメントとしてつけたい人は以下のコマンドを使ってください。

ssh-keygen -t ed25519 -C "your_email@example.com"

SSH 公開鍵を GitHub に追加

id_ed25519.pubid_ed25519 というファイルが .ssh 内にあると思いますが、「id_ed25519.pub」が公開鍵です。秘密鍵の方を GitHub に公開しないように十分気をつけてください。

cat ~/.ssh/id_ed25519.pub

上記のコマンドにより確認できた公開鍵をコピーしてください。

次に、GitHub の「Settings」を開いてください。その後、「SSH and GPG keys」に移動してください。
「New SSH key」というボタンがありますので、そこをクリックし、「Key」と書いてある場所に先ほどコピーした公開鍵を入力してください。タイトルには、自分がわかりやすいタイトルをつけ、「Key type」は「authentication key」を選択すれば大丈夫です。

Authentication Key:主に SSH 接続の認証に使用されます。リモートリポジトリに対するアクセスを許可するための鍵です。
Signing Key:Git コミットやタグの署名に使用されます。この鍵を使用することで、あなたがそのコミットやタグを作成したことを証明することができます。

SSH config に明示的に指定

ここは、人によってはやらなくても大丈夫です。
主に、複数の SSH 鍵持ちの人向けです。

~/.ssh/config
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519

SSH 接続テスト

うまく、SSH 鍵が設定できたかどうかは、以下のコマンドで確かめることができます。

ssh -T git@github.com

成功していれば以下のようなコメントが返ってくるはずです。(qiita と書いてある場所が自分の GitHub のユーザ名になっています。)

Hi qiita! You've successfully authenticated, but GitHub does not provide shell access.

SSH 鍵のパーミッションの確認

SSH 鍵のパーミッションが適切でない場合も接続に失敗することがあります。以下のコマンドで適切なパーミッションを設定します。

chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

chmod 600 はファイルを所有者だけが完全に管理できるようにし、chmod 644 は他のユーザーにも読み取り権限を与える設定です。

SSH クライアントの詳細なデバッグ情報

接続時の詳細な情報を表示するために、以下のコマンドを実行します。

ssh -vT git@github.com

おわりに

この記事では、GitHub に SSH keys を設定したいと思います。

この記事が、エンジニアとして活躍する方々に貢献できたら幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?