😎
GitHubへのssh接続(備忘録)
はじめに
わりとありふれたネタではあると思うが、地味に書き方が足りてない所が多いのもあり、自分の備忘録程度にメモ。
GitHubへのアクセスはアクセストークンを発行する方法もあるが、個人的になじみのあるssh接続の方を試してみる。
ローカルの作業
SSHキーの作成
以下のコマンドにてキーを作成する。
ここでのメールアドレスは個人で利用しているものを付与する。
terminal
ssh-keygen -t ed25519 -C "hir0t15.m@gmail.com"
そのままEnterを押す。
Enter file in which to save the key (/home/user01/.ssh/id_ed25519):
パスフレーズも空白のままでよいので、そのままEnterを押す。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
以下のコマンドが出力される。
Your identification has been saved in /home/user01/.ssh/id_ed25519
Your public key has been saved in /home/user01/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA hir0t15.m@gmail.com
The key's randomart image is:
+--[ED25519 256]--+
|oo. . |
|.oo. .+ . |
|o =oo+.+ . |
| o *+B=o. |
| =.*+*oS |
| + . *+. |
|o.o o == |
|.+.o o o+ |
| .E. .. |
+----[SHA256]-----+
これにより、~/.ssh
に以下が生成される。
- id_ed25519(秘密鍵)
- id_ed25519.pub(公開鍵)
これは管理しやすいように~/.ssh/github
というディレクトリに格納するようにする。
terminal
mkdir ~/.ssh/github
mv ~/.ssh/id_* ~/.ssh/github
configの編集
~/.ssh/config
を編集する。
terminal
vi ~/.ssh/config
ここでのポイントは以下。
-
User
は必ずgit
にする。
自身のユーザーネームにしてはいけない。 -
IdentityFile
は秘密鍵のフルパスを指定する。
Host github github.com
HostName github.com
User git
IdentityFile ~/.ssh/github/id_ed25519
GitHubへの公開鍵の設定
公開鍵の確認
公開鍵の内容を確認する。
terminal
$ cat .ssh/github/id_ed25519.pub
ssh-ed25519 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX hir0t15.m@gmail.com
GitHubへの設定
公開鍵をGitHubに保存する。
以下URLにアクセスして、「New SSH Key」というボタンを押す。
https://github.com/settings/keys
以下の通り設定をする。
- 「Title」は任意でよい。
- 「Key type」はそのまま。
- 「Key」に先ほど出力された「id_ed25519.pub」の内容を転記する。
入力完了後、「Add SSH key」を押すと、登録は完了となる。
接続確認
以下のコマンドにてssh接続できるかを確認する。
terminal
ssh -T git@github
以下の通り出力されたらOK。
Hi hr0t15! You've successfully authenticated, but GitHub does not provide shell access.
その他
すでにClone済みのリポジトリがある場合
https接続でClone済みリポジトリがある場合、リモートリポジトリのURLをssh接続用に変更する必要がある。
接続先を変更する前に、現在の接続先を確認する。
terminal
git remote -v
例えば、以下のようにhttps接続のURLが表示されたとする。
origin https://github.com/hr0t15/zenn.git (fetch)
origin https://github.com/hr0t15/zenn.git (push)
以下のコマンドで、接続先のURLの変更を行う。
terminal
git remote set-url origin git@github.com:hr0t15/zenn.git
再度、接続先を確認する。
terminal
git remote -v
以下のようにssh接続のURLに変わっていればOK。
origin git@github.com:hr0t15/zenn.git (fetch)
origin git@github.com:hr0t15/zenn.git (push)
Discussion