【Git/GitHub】設定等備忘録
前提
・M1 Mac
・CLIでのコマンド、Vimは使える
アカウント作成
・https://github.co.jp/ からアカウント作成。
・GitとGitHub のユーザ設定を同期する。
git config --global user.name "yourname"
git config --global user.email "your@email.com"
"yourname" と "your@email.com" は自分が GitHub にユーザ登録した際の情報に置き換える。
GitHubにSSHキーを登録する
ssh-keygen -t ed25519 -C "your@email.com"
ssh-keygenのオプション
-t (方式)
作成する鍵の暗号化形式を「rsa」(デフォルト)、「dsa」「ecdsa」「ed25519」から指定する
-C (コメント)
コメントを指定する(デフォルトは「ユーザー名@ホスト名」。「-C ""」でコメントを削除)
(参考)
電子署名EdDSA(ed25519)の数的構造
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/your_username/.ssh/id_ed25519):
「ファイル名を入力して」と言われるが、何も入力せず Enter を押すとデフォルトのファイル名で秘密鍵と公開鍵が作成される。
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
再度パスフレーズの入力が求められるから、同じパスフレーズを入力。
Generating public/private ed25519 key pair.
/.../.ssh/id_ed25519 already exists.
Overwrite (y/n)?
が表示された場合、y(yes)を入力して上書き。
四角い絵(randomart)が表示されたらOK。
(SHA256とrandomartは各個人によって表示されるものが異なる)
echo -e "\nHost github.com\n AddKeysToAgent yes\n UseKeychain yes\n IdentityFile ~/.ssh/id_ed25519\n" >> ~/.ssh/config
macOS Sierra 10.12.2 以降を使っている場合は、~/.ssh/config ファイルを修正して、キーが ssh-agent に自動的に読み込まれ、パスフレーズがキーチェーンに格納されるようにする必要があります。
秘密鍵をssh-agentに追加する。
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
--apple-use-keychain オプションは macOS の ssh-add で、SSH 鍵を ssh-agent に追加する際にパスフレーズをキーチェーンに保存するオプションです。少し前まで -K オプションがこの役割だったのですが、macOS Monterey からは -K オプションは WARNING が出るようになったようです。詳細は man ssh-add コマンドを参照。
クリップボードに公開鍵をコピー。
pbcopy < ~/.ssh/id_ed25519.pub
GitHubのトップページ右上の自分のアイコンをクリック→「Settings」を選択。
左メニュー「SSH and GPG keys」をクリックし、右上の「New SSH key」を選択。
Keyの部分に貼り付け(cmd+V)をして Titleは自分のわかりやすい名前をつけて「Add SSH key」を押す。 貼り付けたキーがssh-ed25519 という文字列で始まっているかに注意。
GitHubにつながるかテスト。
ssh -T git@github.com
Hi <YOURNAME>! You've successfully authenticated, but GitHub does not provide shell access.
と出力されたらOK.
permission denied
と出たら、クリップボードにコピーするところからやり直し。
The authenticity of host 'github.com (IP ADDRESS)' can't be established.
RSA key fingerprint is SHA256: .
Are you sure you want to continue connecting (yes/no)?
と出たら、yes.
End.
参考
電子署名EdDSA(ed25519)の数的構造
新しい SSH キーを生成して ssh-agent に追加する
macOSのssh-agentでSSH鍵のパスワードを省略する
複数のGitHubアカウントを使い分けたい時の設定方法とTips