\ ポイント最大11倍! /

【GitHub】SSHキー関連の設定方法まとめ

  • GitHubのSSHキー操作が苦手…
  • 基本的な操作の流れが知りたい
  • 運用中に必要な知識も併せて教えて

このような疑問にお答えします。

開発になくてはならないGitHubですが、その最初のステップでクリアしなければならないのがSSH接続です。

一度設定を済ませてしまえば後は気にする必要もあまりないのですが、この最初のSSH接続設定でつまずく方って意外と多いのではないでしょうか?

かくいう僕も以前はかなり苦手な分野でした。

なぜならSSH設定は最初だけやれば良いので、どうしても繰り返し触れる機会がなく「慣れる」ということがないからです。

本記事では、GitHubにSSH接続するための手順とその解説を網羅しました。
ぜひ参考にしてみてください。

【GitHub】SSHキー関連の操作まとめ

SSHキーの生成からGitHubへのSSH接続までの操作方法をまとめました。

できれば手を動かしつつ、ここで基本的な操作の流れを覚えていきましょう。

SSHキーの生成

ターミナルで以下のコマンドを実行します。

ssh-keygen -t ed25519 -C "あなたのメールアドレス"

続いてキーの保存場所を聞かれるので、保存したいパスを指定します。

ssh-keygen -t ed25519 -C "yourmailaddress@sample.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/username/.ssh/id_ed25519): 

表示されたパスでよければEnterキーを、別の場所に保存したい場合にはパスを入力してEnterキーを押します。

続いてパスフレーズの入力を求められます。

ssh-keygen -t ed25519 -C "yourmailaddress@sample.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/username/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase): 

パスフレーズはセキュリティを高めるためのパスワードです。不要であれば空のままEnterを押してしまって構いません。

先ほどのディレクトリに降りてlsコマンドを実行すると、キーが無事に作成されていることが確認できます。

% /Users/username/.ssh/
% ls -la
-rw-------   1 ccts  staff   411  9 21 21:12 id_ed25519
-rw-r--r--   1 ccts  staff   102  9 21 21:12 id_ed25519.pub

id_ed25519は秘密鍵、id_ed25519.pubは公開鍵です。

この後GitHubアカウントに登録するのは公開鍵(id_ed25519.pub)の方になります。

公開鍵をGitHubに追加する

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

pbcopy < ~/.ssh/id_ed25519.pub

GitHubのウェブサイトにログインして、Settingsをクリックします。

続いてSSH and GPG keysをクリックし、New SSH keyをクリックします。

以下のSSHキーを登録するフォームが表示されます。

Titleには今回登録するSSHキーのわかりやすい名前をつけてください。

Keyには先ほどクリップボードにコピーした公開鍵を貼り付けます。

最後にAdd SSH keyボタンを押せば、GitHub側での操作は完了です。

ローカル側でconfigファイルに登録

ここからはローカルPC側の処理です。

以下のコマンドを実行して、configファイルを編集しにいきます。

vi ~/.ssh/config

ファイルの中身は以下のように書き込みましょう。

Host github.com
    HostName github.com
    User ******  # ご自身のGitHubアカウントのユーザー名に置き換える
    IdentityFile ~/.ssh/id_ed25519  # 秘密鍵のパスを入力
    IdentitiesOnly yes
    Port 22
    ServerAliveInterval 60

入力が終わったら、上書き保存しましょう。

最後に以下のコマンドを実行して、GitHubに正常に接続できるかテストをします。

ssh -T git@github.com

以下のメッセージが返ってくれば成功です。

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

GitHubでSSH接続する際の+αの知識

普段からGitHubを触っていて感じる疑問をまとめました。

同じような事象でお悩みの場合には参考にしてみてください。

既存のSSHキーを確認したい

~/.sshディレクトリに対してlsコマンドを実行します。

ls -la ~/.ssh

これにより.sshディレクトリ内にある既存のSSHキーが確認できます。

SSHキーのパスフレーズを変更したい

パスフレーズを変更したいSSHキーのパスに対して、以下のコマンドを実行します。

ssh-keygen -p -f ~/.ssh/id_ed25519

コマンド実行後に現在のパスフレーズを聞かれるので入力し、その後に新しいパスフレーズを入力したら登録完了です。

複数のSSHキーを管理するためのベストプラクティス

SSHキーの生成するときには、わかりやすいファイル名をつけます。

例えば以下のようにサービス名ごとに命名していくと、後でごちゃごちゃにならず便利です。

ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/github_key
ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/work_server_key

また、SSH設定ファイル(~/.ssh/config)については、ホストごとに異なるSSHキーを設定するよう指定すると良いです。

Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/github_key

Host work-server
    HostName work.example.com
    User your_username
    IdentityFile ~/.ssh/work_server_key

まとめ

これまでGitHubで行う一般的なSSH接続の手順をまとめてきました。

少しとっつきにくい印象を持たれている方もいらっしゃるかもですが、一つ一つ順を追っていけばそこまで難しいものでもありません。

SSH接続はGitHubの入り口となる操作の一つです。

ぜひこの機会にマスターしてしまいましょう。

この記事が気に入ったら
フォローしてね!

シェア・記事の保存はこちら!

この記事を書いた人

karo@プログラマのアバター karo@プログラマ プログラマ

「書くことで人の役にたつ」をモットーに活動中。
本職はプログラマで、Pythonが得意。
基本情報技術者試験合格。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)