macOS MontereyにてGithubの設定
これは何?
macOS Montereyにgithubの設定を行ったさいの私的メモです。いつも忘れるのでメモしました。
最近のgithubは、sshで認証を行う必要がありますので、sshに関する設定を行います。
gitのインストールは、済んでいるものとします。
私はOSとともにインストールされるものとは別のgitを使用しています。
github向けの初期設定
$ git config --global user.name "YOUR_NAME"
$ git config --global user.email "YOUR_EMAIL"
$ git config --global core.quotepath false
$ git config --global url."git@github.com:".insteadOf "https://github.com/"
公開鍵の作成
以下のコマンドを実行すると、のファイル名を聞かれるのでid_rsa_git
としています。
その後、パスフレーズが2度聞かれるので適切に設定します。
(忘れないようにしてください。)
メールアドレスは、ご自身のものをご使用ください。
また、以下の作業を行うディレクトリは~/.ssh
の中が良いでしょう。
$ ssh-keygen -t rsa -C "YOUR_EMAIL"
成功すると、公開鍵が作成されます。
$ ssh-keygen -t rsa -C "YOUR_EMAIL"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa): id_rsa_git
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_git
Your public key has been saved in id_rsa_git.pub
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx YOUR_EMAIL
The key's randomart image is:
+---[RSA 3072]----+
|XXX |
|XXX |
|XXX |
|XXX |
|XXXXXXXXX |
|XXXXXXXX |
|XXXXXXXXX |
|XXXXXXXX |
|XXXXXXXX |
+----[SHA256]-----+
出来上がるファイルは、以下のとおりです。
$ ls
id_rsa_git id_rsa_git.pub
両ファイルとも600でないと、認証の際にLoad key "/Users/ユーザー名/.ssh/id_rsa_git": bad permissions
と叱られます。
GitHubへ公開鍵を登録
いよいよ先ほど生成された公開鍵をクリップボードにコピーします。
$ pbcopy < ~/.ssh/id_rsa_git.pub
GitHubへログインし、Settingを開きます。
以下の画面のSSH and GPG keysを選択し、
New SSH keyをクリックします。
タイトルとKeyを設定します。
タイトルはPCの識別名を、Keyは先ほどクリップボードにコピーしたid_rsa_git.pub
の内容を貼り付けます。
Add SSH keyをクリックすると以下の画面となり、先ほどのSSH key登録のが完了します。
接続の確認
ここで、シェルから接続の確認を行います。
$ ssh -T ssh.github.com
Hi YourNAME! You've successfully authenticated, but GitHub does not provide shell access.
となれば、完了です。
Issue
OS再インストール時の再設定
OSをクリーンインストールなどした場合は、これらのファイルと~/.ssh/config
を~/.ssh
以下にコピーすれば設定終了です。
しばらく使っているとログインできなくなる
リモートリポジトリの名前変更などしていないのに
% git push -u origin main [~/Dropbox/00_works/portfolio/zenn-contents][main]
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
となったら、もう一度
$ ssh -T ssh.github.com
Hi YourNAME! You've successfully authenticated, but GitHub does not provide shell access.
すれば、push
できるようになります。
Discussion