technology プログラミング

GitHubをSSHで接続する方法

本記事では、Githubを使うときにSSHで接続する方法についてご紹介します。

詳細はこちらをご覧ください(docs.github.com

公開鍵と秘密鍵の作成

最初に.shhディレクトリを作成しましょう。

以下のコマンドで.shhディレクトリがあるかを確認できます。なければ「No such file or directory」と表示されます。

$ ls -al ~/.ssh

ls: /Users/test/.shh: No such file or directory

 

鍵を生成するコマンドを実行します。

$ ssh-keygen -t ed25519 -C "test@example.com"

Generating public/private ed25519 key pair.

デフォルトでは、生成されるファイルはホームディレクトリの「.ssh」下に生成されます。
"test@example.com"には、Githubで登録しているメールアドレスを入力してください。「ssh-keygen」で「ed25519」の暗号化方式の鍵を作成します。

 

#keyファイルの名前を設定することができます。特になければ、Enterを押しましょう。

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

Created directory '/Users/test/.ssh'/.

「[Enter passphrase (empty for no passphrase):」パスフレーズを設定することができます。

鍵を使うときにここで指定したパスフレーズを入力しないとGithubでpushできないように制限することができます。

「[Enter same passphrase again:」では、先ほどと同じパスフレーズを入力してEnterを押しましょう。

ssh keyの秘密鍵「id_ed25519」、公開鍵「id_ed25519.pub」のペアが作成されます。

公開鍵「id_ed25519.pub」をGithubに登録することでSSH接続ができるようになります。秘密鍵「id_ed25519」は、大切に保管しましょう。

[Enter passphrase (empty for no passphrase):

[Enter same passphrase again:

Your identification has been saved in /Users/test/.ssh/id_ed25519.

Your public key has been saved in /Users/test/.ssh/id_ed25519.pub.

The key fingerprint is:

SHA256:xxxxxxxxxxxxx test@example.com

The key's random art image is:

+--[ED25519 256]--+
|                  xxx.          |
|                    xx+. o     |
|                      --xx+.   |
+-----[SHA256]-----+

 

ssh-keygenの主なオプション

-t 作成する鍵の暗号形式の指定(ed25519、dsa、ecdsa、デフォルト:rsa)

-C コメントの指定(コメントは鍵の最後に表示されます。デフォルト:Macのユーザー名@ホスト名。-C"":コメントの削除)

-p パスフレーズを変更する

-N 新しく設定するパスフレーズを指定する

-E fingerprintを表示する形式の指定(md5、デフォルト:sha256)

-f ファイル名の指定

GithubにSSHの登録

こちら(https://github.com/settings/keys)にログインして、公開鍵を登録しましょう。

 

GitHubへ接続

ローカル環境で以下のコマンドを入力します。

$ ssh -T git@github.com

 

リモートサーバへの接続を有効にするfingerprintが表示されます。Githubの公開鍵のfingerprintと一致しているかこちら(docs.github.com)からご確認ください。

The authenticity of host 'github.com (xxxxxxxxx)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

 

一致していることが確認できたら「yes」と入力してenterキーを押しましょう。

Are you sure you want to continue connecting (yes/no/[fingerprint])?yes

 

先ほど、設定したpassphraseが求められるので入力してください。画面に入力内容は表示されないですが、入力が完了したらenterキーを押しましょう。

以下の通り表示されていれば接続完了です。git pushなど使えるようになります。

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

 

まとめ

今回は、SSHキーの生成方法、Githubへの登録の仕方についてご紹介しました。

これからGithubを使う方は参考にしてみてください。

-technology, プログラミング

© 2024 KENTECH