はじめに
Githubのリモートリポジトリからpushやpullなどをするためには、ユーザー名とアクセストークンを毎回入力するめんどくさい過程が必要です。
そのため、今回はSSH Keyを活用して、この過程を省略する方法を整理しようと思います。
SSH (Secure Shell)
ネットワークに接続された機器を遠隔操作・管理するとき、セキュリティを維持するために使用する暗号化されたリモート接続プロトコルです。
SSH Keyは、秘密鍵と公開鍵をペアとして使います。
SSH Keyを生成
LinuxやmacOSはターミナル、WindowsにGit bashやPowerShellなどで、以下のコマンドを実行し、キーファイルを生成します。
$ ssh-keygen
コマンドを実行する前に、すでにキーが存在しないか確認してください。
コマンドを実行すると、以下のように2つのファイルが生成されます。
$ ls ~/.ssh/
id_rsa id_rsa.pub
id_rsa
は秘密鍵です。
他人が見られないように注意する必要があります。
id_rsa.pub
は公開鍵です。
この後のGithubのSSH Key設定に使用します。
GithubにSSH Keyを設定
Githubにログインした後、右上のプロフィールアイコンをクリックするとメニューが表示されます。
メニューの中で「Settings」をクリックします。
Settingsの画面が表示されたら、左のメニューで「SSH and GPG Keys」を探してクリックします。
新たなSSH Keyを生成するため、「New SSH Key」ボタンをクリックします。
「Title」は適切に入力、「Key」はid_rsa.pub
(公開鍵)ファイルの内容をコピーして入れます。
その後、「Add SSH Key」ボタンをクリックして設定を完了します。
SSH接続を確認
以下のGithubのドキュメントに接続確認方法が作成されています。
接続確認方法を整理すると
まず、ターミナルで、以下のコマンドを入力して実行します。
$ ssh -T git@github.com
以下のようなメッセージが表示される場合
The authenticity of host 'github.com (IPアドレス)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
表示されるメッセージのフィンガープリントが、GitHub の公開キー フィンガープリントと一致することを確認します。
問題なければ、「yes」と入力します。
最後に以下のようなメッセージが出力されたら完了です。
Hi ユーザー名! You've successfully authenticated, but GitHub does not provide shell access.
その他
参考