微忘録

好奇心に記憶力がついていかない人のブログ

GitHubのセキュリティ設定でやるべきこと

GitHub周りのセキュリティ設定、何回忘れたのかさえ忘れました。 公開鍵でSSH接続して、EmailをPrivateするだけの備忘録です。

※厳密なセキュリティ設定は記述しないので、他の猛者の方々の記事を参考にして下さい。


アカウントと公開鍵の設定

鍵セットの作成

rsa指定で鍵セットを作成。既存がある際は重複削除しないよう注意。

$ cd ~/.ssh #移動して
$ ssh-keygen -t rsa -C mymail@example.com #鍵作成。-C以下任意で自分のメールアドレス

SSH連携

ssh/configに記入し、GitHubとのssh接続を楽にする。

$ vim ~/.ssh/config 

#以下をインサート
Host github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa
  User git

公開鍵をクリップボードにコピーして、GitHubアカウントのSSH keysでコピペして登録。

$ pbcopy < ~/.ssh/id_rsa.pub

接続成功したか確認。成功したら以下のような文が出てくる

$ ssh -T git@github.com
Hi wtnVenga! You've successfully authenticated, but GitHub does not provide shell access.

ローカルリポジトリのconfig設定

ローカルリポジトリに移動。config設定を開いて、https://~git@~に変更。

$ cd [local repository]
$ vim .git/config

#'url = https://github.com/[user_name]/[repository_name].git' の部分を以下形式に変更。
url = git@github.com:[user_name]/[repository_name].git

PrivateEmailの利用

GithubのEmail設定をPrivate化するとEmail情報を守れる。
(※リモートリポジトリをcloneされた時にcommitログから漏れない。)

GitHubアカウントの設定

まずはEmail設定の Keep my email address privateBlock command line pushes that expose my email にチェック。 表示される[userid]+[username]@users.noreply.github.com をコピペ。

git configの設定

git configのemail設定を書き換える(--global--local かはお好みで)

$ git config --global user.email [userid]+[username]@users.noreply.github.com

(commitログ書き換え)

最新コミットログの変更。(開いたら:ZZで保存するだけ)

git commit --amend --reset-author

過去コミットログの変更。自分のSHA(コミットハッシュ値から)を指定

git rebase -i [my_SHA] -x "git commit --amend --reset-author -CHEAD"

参考元

git - Meaning of the GitHub message: push declined due to email privacy restrictions - Stack Overflow

How to amend several commits in Git to change author - Stack Overflow