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鍵を登録する手順を丁寧に解説

0
Posted at

はじめに

GitHubにコードをpush/pullする際、毎回ユーザー名とパスワードを入力するのは面倒ですよね。
SSH鍵を使えば、一度設定するだけでパスワード入力なしで安全にGitHubとやり取りできるようになります。

この記事では、SSH鍵の仕組みから実際の設定手順までを解説します。


1. SSH鍵とは何か

SSH鍵は「公開鍵」と「秘密鍵」のペアで構成されます。

鍵の種類 保管場所 役割
秘密鍵(private key) 自分のPCのみ 絶対に他人に渡さない・見せない
公開鍵(public key) GitHub側に登録 誰に見られても問題ない

イメージとしては、公開鍵は「南京錠」、秘密鍵は「その鍵」です。
GitHub側に南京錠(公開鍵)を渡しておき、自分だけが持っている鍵(秘密鍵)で開錠することで本人確認を行う、という仕組みです。

この仕組みにより、パスワードを毎回送信することなく、安全に認証ができます。


2. 既存のSSH鍵があるか確認する

まずは、すでにSSH鍵を作成済みでないか確認しましょう。

ターミナルを開いて以下を実行します。

ls -al ~/.ssh

以下のようなファイルがあれば、すでに鍵が存在しています。

  • id_rsaid_rsa.pub
  • id_ed25519id_ed25519.pub

もし何も表示されない、または .ssh ディレクトリ自体が無ければ、次のステップに進んで新しく作成します。

注意: すでに鍵がある場合、新しく作り直すと既存の設定(他サービスとの連携など)に影響することがあるので、心当たりがない限りは新規作成で問題ありません。


3. 新しいSSH鍵を作成する

現在推奨されている ed25519 方式で鍵を作成します。

ssh-keygen -t ed25519 -C "your_email@example.com"
  • -t ed25519: 鍵の方式を指定(高速かつ安全)
  • -C: コメント。GitHubに登録しているメールアドレスを入れるのが一般的です

実行すると、以下のように聞かれます。

Enter a file in which to save the key (/Users/you/.ssh/id_ed25519):

そのまま Enterキー を押せばデフォルトの場所に保存されます。特別な理由がなければそれでOKです。

次にパスフレーズの入力を求められます。

Enter passphrase (empty for no passphrase):

これは秘密鍵自体にかけるパスワードのようなものです。設定しておくとより安全です(空欄のままEnterでも作成は可能です)。

これで ~/.ssh/id_ed25519(秘密鍵)と ~/.ssh/id_ed25519.pub(公開鍵)が作成されました。


4. SSH鍵をssh-agentに登録する

ssh-agentは、秘密鍵を管理し、毎回パスフレーズを聞かれないようにしてくれる仕組みです。

まずssh-agentを起動します。

eval "$(ssh-agent -s)"

次に鍵を登録します。

macOSの場合:

ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Linux / WSLの場合:

ssh-add ~/.ssh/id_ed25519

パスフレーズを設定した場合は、ここで入力を求められます。


5. 公開鍵をコピーする

公開鍵の中身をクリップボードにコピーします。

macOSの場合:

pbcopy < ~/.ssh/id_ed25519.pub

Linuxの場合(xclipが必要):

xclip -selection clipboard < ~/.ssh/id_ed25519.pub

Windows(WSL)の場合:

cat ~/.ssh/id_ed25519.pub | clip.exe

コマンドが使えない場合は、以下でファイルの中身を表示して手動でコピーしても構いません。

cat ~/.ssh/id_ed25519.pub

表示される文字列は ssh-ed25519 AAAA... のような形式です。この全体をコピーします。


6. GitHubに公開鍵を登録する

  1. GitHubにログインし、右上のアイコンから Settings を開く
  2. 左メニューの SSH and GPG keys をクリック
  3. New SSH key ボタンをクリック
  4. 以下を入力
    • Title: 「MacBook Pro」など、わかりやすい名前
    • Key type: Authentication Key のまま
    • Key: 先ほどコピーした公開鍵を貼り付け
  5. Add SSH key をクリックして保存

これでGitHub側への登録は完了です。


7. 接続テストをする

正しく設定できたか確認しましょう。

ssh -T git@github.com

初回接続時は以下のような確認メッセージが出ることがあります。

The authenticity of host 'github.com' can't be established.
Are you sure you want to continue connecting (yes/no)?

yes と入力してEnterを押します。

成功すると、以下のようなメッセージが表示されます。

Hi <あなたのユーザー名>! You've successfully authenticated, but GitHub does not provide shell access.

このメッセージが出れば、SSH接続の設定は完了です。


8. リモートリポジトリの接続先をSSHに変更する

すでにHTTPS形式でクローンしているリポジトリがある場合は、接続先をSSH形式に変更する必要があります。

現在の設定を確認します。

git remote -v

以下のように https://github.com/... となっていたら、SSH形式に変更しましょう。

git remote set-url origin git@github.com:ユーザー名/リポジトリ名.git

これから新しくクローンする場合は、GitHubのリポジトリページで Code ボタンを押し、SSH タブを選んで表示されるURLを使ってください。

git clone git@github.com:ユーザー名/リポジトリ名.git

9. うまくいかないときのチェックリスト

症状 確認すること
Permission denied (publickey) と出る 公開鍵がGitHubに正しく登録されているか、ssh-add で鍵を追加できているか確認
毎回パスフレーズを聞かれる ssh-agent が起動しているか確認(手順4を再実行)
git remote -vhttps:// のまま 手順8でSSH形式に変更し忘れていないか確認
複数のGitHubアカウントを使い分けたい ~/.ssh/config でホストごとに鍵を指定する設定が必要(応用編)

まとめ

  • SSH鍵は「公開鍵(GitHubに登録)」と「秘密鍵(自分のPCに保管)」のペアでできている
  • ssh-keygen で鍵を作成し、ssh-agent に登録する
  • 公開鍵をGitHubの Settings > SSH and GPG keys に登録する
  • ssh -T git@github.com で接続確認ができる
  • リモートURLは git@github.com:... の形式にする

一度設定してしまえば、以降は認証を意識せずにGit操作ができるようになります。ぜひ試してみてください。

JISOUのメンバー募集中!

プログラミングコーチングJISOUでは、新たなメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
興味のある方は、ぜひホームページをのぞいてみてください!

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?