備忘録 GithubのSSH鍵を設定する


これまで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フォルダに移動

cd /home/mihune/.ssh/

 

.sshフォルダにvi (vim)でconfigファイルを生成します。rsaの名前を変えてない場合はこのままコピペです。

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, but GitHub does not provide shell access.

が出れば完了。