- 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の入り口となる操作の一つです。
ぜひこの機会にマスターしてしまいましょう。
コメント