【Github】GithubのSSH設定方法のおさらい
GithubがSSH接続を基本にしてから結構経ちますが、新PC等で設定をする際に毎回調べているような気がしているので一度おさらいをしようと思います。
SSH接続の概要
SSH(Secure Shell)は、安全な通信を行うためのプロトコルです。
Githubでは、公開鍵と秘密鍵を使用して接続を認証します。
SSH接続を利用するメリット
セキュリティの向上
通信が暗号化されるため、第三者に内容を傍受されるリスクが減少
利便性の向上
毎回パスワードを入力せずに済む
自動化が容易
CI/CDパイプラインの設定が簡単になる
個人的には2つ目の「利便性の向上」が特に有用です。一度設定しておけばパスワード不要なので楽ですね。
昨今は何かと自動化することが多いのでその辺も使いやすくなるのは良いですよね。
では、次から設定方法をまとめていきます。
SSH鍵を生成する
SSH接続を設定するには、まずローカル環境にSSH鍵を生成します。
以下のコマンドをターミナルで実行しましょう。
オプションに色々追加していますが、この辺は適宜変更してください。
-t rsa
鍵の種類(今回はRSA)
-b 4096
鍵の長さ(推奨は 4096ビットのようです)
-C ~~
Githubアカウントのメールアドレス
上記の設定で実行すると対話形式で鍵を作ります。
まずは、鍵を保存するパスを指定します。(デフォルトで良ければそのままEnter)
次にパスフレーズを設定します(空でもOK)
鍵が生成されると、以下の2つのファイルが生成されます。
~/.ssh/id_rsa
秘密鍵
~/.ssh/id_rsa.pub
公開鍵
秘密鍵は漏洩しないように注意してください。
ここで生成された公開鍵をGithubに登録していきます。
公開鍵をGithubに登録する
まずは生成した公開鍵の内容をコピーしましょう。
次のコマンドをターミナルで実行します。
pbcopy
を使用してクリップボードにファイルの内容をコピーします。
Github側の設定
Githubにログイン後、画面右上のプロフィールアイコンをクリックして、Settingを選択
SettingページのサイドメニューからSSH and GPG keysをクリック
New SSH keyボタンをクリック
Title欄に判別しやすい名前を入力(例:"My Laptop")
先程コピーした公開鍵をそのままKey欄に貼り付けてAdd SSH keyをクリック
これでGithub側での登録が完了です。
接続確認
では最後に接続確認をしてみましょう。
以下のコマンドを実行してください。
初回接続時には以下のようなメッセージが表示されると思いますが、`yes`を入力してください。
接続に成功した場合は次のようなメッセージが表示されます。
これでSSH設定は完了です!
エイリアス登録
先程までの状態で問題はありませんが、複数の接続情報を管理するためにエイリアス登録をすることができます。
~/.ssh/config
ファイルを開いて設定してみましょう。このファイルがない場合は新しく作成して下さい。
以下の内容を記載します。
記載した内容は以下です。
Host
エイリアス名(任意)
HostName
接続先のホスト名
User
使用するユーザー(Githubでは常にgitです)
IdentityFile
使用する秘密鍵のパス
他にもありますが、最低限これを入力すれば使えるようになると思います。
接続確認
先程は以下のような内容で接続していました。
今回はエイリアス名で接続します。
これで先程と同じ成功のメッセージが表示されれば完了です。
エイリアス登録のメリット
鍵の使い分け
プライベートと仕事用など、異なる鍵を明確に管理できる
短縮URL
長い接続コマンドを簡略化
複数アカウントの管理
複数のGithubアカウントを切り替えるのが容易
特に2つ目の入力内容を短縮できるのが個人的にとても大きいです。
毎回長いURLを入力するのは手間ですから...
よくあるトラブルと対処法
接続時にPermission deniedと表示される
この表示が出る場合はSSHエージェントに鍵が追加されていない可能性があるようです。
(ちなみに私はなったことはないです。)
以下の内容をターミナルで入力してみましょう。
もし、上記を試しても変化がなければGithubに正しく公開鍵が登録されているか再度確認してください。
まとめ
最近ではSSHは必須の要素でありますが、頻繁に設定するわけではないので(私の場合)忘れてしまいますよね。
最初は少し手間に感じるかもしれないですが、この手順で行えば多くの作業を効率化できるのでぜひお試しください!
ちなみに...
今やったことはGithub CLIというツールを使用すれば簡単に設定することができます。
キーを生成して、登録して、、、という作業は一切不要で指示に従って進めれば瞬時にGithubにSSH鍵を登録できます。
こちらに関しての記事も近いうちに公開しますので乞うご期待!
タグ