SSHでGitHubに接続#
SSHでログインする意味#
安全にサーバーへログインためです.
プライベートリポジトリをクローンするとき,トークンを生成する必要がない
SSH鍵の生成#
公開鍵と秘密鍵はホームディレクトリーの.sshフォルダに保存される
$ mkdir -p ~/.ssh/github
$ cd ~/.ssh/github
$ ssh-keygen -t ed25519 -f id_rsa
# コマンド実行後に求められるパスフレーズは設定すべき(Enterで省略可)
# ssh-keygenコマンドのオプション
# -t [type] : 生成する鍵の暗号方式を指定できる
# -f [output_keyfile] : sshkeyの保存先とファイル名の指定できる
# -C [comment] : コメント
生成された鍵の暗号方式の確認
$ ssh-keygen -l -f id_rsa.pub
($ ssh-keygen -l -f ~/.ssh/github/id_rsa.pub)
注意点 秘密鍵 [ id_rsa ] : 誰にも漏らしてはいけない 公開鍵 [ id_rsa.pub ] : 他の人に渡してもいい
公開鍵をGitHubに登録#
生成した id_rsa.pub 内の公開鍵をcatで表示し,コピーする
ssh- … …@… の一行すべてコピーする
$ cat id_rsa.pub
($ cat ~/.ssh/github/id_rsa.pub)
Githubにログインし,setting - > SSH & GPG keys から New SSH key をクリック
タイトルは自由,認証キーは ‘Authentication’ ,コピーした公開鍵をペーストする
sshの設定追加#
$ vi ~/.ssh/config
※ # comment… は消さなくても良い
Host github.com # alias(好きな名前でもOKだが,cloneなどするときにコピペで対応できなくなる)
HostName github.com # サーバーのホスト名やIPアドレス
User git # サーバーのユーザー名
IdentityFile ~/.ssh/github/id_rsa # 秘密鍵の絶対パス
TCPKeepAlive yes # 接続の有効無効の確認通知を出すかどうか(yes/no)
IdentitiesOnly yes # IdentityFileで指定した秘密鍵に限定するかどうか(yes/no)
接続の確認#
秘密鍵を使用する際のパスフレーズが求められる
鍵の生成で設定したパスフレーズを入力
$ ssh -T git@github.com
Enter passphrase for key '/Users/username/.ssh/github/id_rsa':
Hi GithubUser! You've successfully authenticated, but GitHub does not provide shell access. <----この出力が出たら成功
Clone#
リポジトリをcloneするときは https ではなく,sshを選択してコピーする
$ git clone git@github.com:user_name/repo_name.git # 例