これまでGithubを使ったことがありませんでした。
基本一人で作業するので簡単なバージョン管理ならGoogleDriveで十分でしたし、何よりも「こんな拙いコードを世間様に晒すわけにはいかない」という恥の表れです。
ところが昨日になって「2019年からGithub無料プランでもPrivate設定ができるようになった」ことを知り、早速登録してきました。Githubの登録後、なぜかSSH鍵の設定でえらく手間取ったので備忘録を残しておきたいと思います。
SSHについて
SSHとはセキュア シェルの頭文字。ざっくり言うとリモートホストを操作するときに平文通信は危ないので暗号化して、さらに公開鍵やパスワードなど使って厳重に情報を守ろう という目的で使われます。GithubもSSHの利用を推奨、、とどこかで読んだ気がします。
githubのSSH鍵を作った記録
当方の環境はLinux(Mint)ですが、macでも多分ほぼ同じです。Windowsはよく知りません。すみません。
*以下の文中にでてくる名前・メールアドレスなどは全てフィクションです。
SSH鍵を作る
一応gitのバージョン確認
$ git --version
git version 2.17.1
gitに名前とメールアドレスを設定する
$git config --global user.name "mihune"
$git config --global user.email "sample@mihune.com"
ちゃんと設定されたか確認
$ git config --list
できていれば登録内容が表示される(下記)。
user.email=sample@mihune.com
user.name=mihune
ssh-keygen (SSHのペア鍵を生成してくれる)で鍵を生成する
$ ssh-keygen -t rsa -b 4096 -C "sample@mihune.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mihune/.ssh/id_rsa):
言われたとおりENTER押す
Created directory '/home/mihune/.ssh'.
Enter passphrase (empty for no passphrase):
SSH鍵用のパスワードを考えて入力する
Enter same passphrase again:
またまたパスワード入力する(確認用)
Your identification has been saved in /home/mihune/.ssh/id_rsa.
Your public key has been saved in /home/mihune/.ssh/id_rsa.pub.
公開鍵と秘密鍵が生成されました。末尾に.pubがついているほうが公開鍵で、後でこれをgithub側に登録します。
chmodで秘密鍵のパーミッションを600に変更。(所有者のみの読み書きに制限)
chmod 600 /home/mihune/.ssh/id_rsa
もし間違って違うフォルダやファイルのパーミッションを変更してしまった!場合はchmod 766 で誰でも読み書きできる設定になります。(やらかした)。
ちゃんと変更されたか確認
ls -la /home/mihune/.ssh/id_rsa
-rw------- (中略) /home/mihune/.ssh/id_rsa
と出れば成功
.sshフォルダに移動し、.sshフォルダにvi (vim)でconfigファイルを生成します。rsaの名前を変えてない場合はこのままコピペです。
cd /home/mihune/.ssh
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
GitHubに公開鍵を登録
https://github.com/settings/keys にアクセス。Github未登録の場合は先に登録してください。
[New SSH key] をクリックして公開鍵(id_rsa.pub)の内容をそのまま貼り付けます。
ちゃんと出来たか確認。
$ ssh git@github.com
すると下のようなメッセージが出るので鍵に登録したパスワードを入力
Enter passphrase for key ' ~/.ssh/id_rsa':
Hi (ユーザー名)! You've successfully authenticated.
が出れば完了。
参考
- https://qiita.com/yysskk/items/974c9c55d66a26515651「GithubのSSH通信設定」
- https://employment.en-japan.com/engineerhub/entry/2017/01/31/110000「今日からはじめるGitHub」
- https://help.github.com/en/github/authenticating-to-github/working-with-ssh-key-passphrases 「Github Help」