作成日は令和4(2022)年12月21日です。
gitの環境設定
ユーザー名を設定する
git config --global user.name "ユーザー名"
そのままコピって「ユーザー名」で登録しないように。
メールアドレスを登録する
Githubに登録するメールを自分のプライベートなメールにすると外から丸見えで、スパムメールが届く(主に外国から)
対策として、GitHubが各ユーザーに一つずつ割り当てたメールを使う。
Settingsを開く
Emailsを開く
Emailsを開くと、数値+アカウント名@users.noreply.github.com
のようなメールアドレスが書かれている。このメールアドレスを使うと良い。
下部の赤枠の部分にはチェックが入っていることを確認する。
Macのターミナルでメールを登録する
確認できたら、MacのターミナルでGitで使うメールアドレスを登録する。
git config --global user.email 数値+アカウント名@users.noreply.github.com
コミット時に使うエディタを登録する(お好みで)
Visual Studio Code(VSCode)を使うならVSCode側で「code」で起動できるように設定しないといけない。
VScodeの設定
コマンドパレットにshell
と書けば候補が出る。
Installの方を選ぶ。
インストールするのに管理者権限がいるよ!と言うのでOKを押す。
これでターミナルからVSCodeがcode
というコマンドで起動できるようになった。
あとは次のようにgitコマンドを打てばエディタが登録できる。
git config --global core.editor 'code --wait'
sshの設定
ターミナルで~/.sshに移動する。
もし、既存の鍵があるなら名前を変えるなどしないと大変なことになるので、フォルダの中身も確認をしておくと良い。
cd ~/.ssh
ls -la
特に以前作った鍵がないのであれば、以下の手順の通りにやれば良い。ある場合は作る鍵の名前を変える等で対応をする。
ssh-keygenで鍵作成
ssh-keygenする。強度については、ED25519を使う。
GitHub公式もED25519使えと書いてあるのでそうする。
ssh-keygen -t ed25519 -C "github.com"
-Cの後ろのコメントは何でも良い。-Cはコメントのオプション。
とりあえずわかりやすくしておいた。
npc@npc .ssh % ssh-keygen -t ed25519 -C "github.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/myname/.ssh/id_ed25519): # 保存先。そのままEnterでもいい。
Enter passphrase (empty for no passphrase): # ばれないようなパスフレーズ
Enter same passphrase again: # もう一回パスフレーズ
Your identification has been saved in /Users/myname/.ssh/id_ed25519
Your public key has been saved in /Users/myname/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:***************************************** github.com
The key's randomart image is:
+--[ED25519 256]--+
| something |
| |
+----[SHA256]-----+
このような感じで作られたらOK。鍵は見せたくないので伏せ字にした。
ssh-agentの利用
公式に従う派なので、ssh-agentも使う。パスフレーズ何回も打ちたくないけれどパスフレーズのない鍵なんて許せない派でもあるため。
configファイルを使って設定していくので、configファイルを定義する。
open ~/.ssh/config
で開けるならば良いが、作っていないならば開けないので自分で作る。
touch ~/.ssh/config
をしてからopen ~/.ssh/config
する。
複数のアカウントを使い分ける必要がある時(会社用とプライベート用が分離しているとか)であればconfigで分けると良い。
書く内容は以下の通り。
Host *.github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
AddKeysToAgentとUseKeychainは重要。IdentityFileはファイル名を変えているならば変える。
保存をしたらターミナルに戻って、以下のコマンドを入力。
eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Error connecting to agent: Connection refused
が出たらeval "$(ssh-agent -s)"
がうまく実行出来ていない可能性が高い。
成功したらパスフレーズを入力するように言われるので、ssh-keygen
で作成した時のパスフレーズを入力する。
Identity added: /Users/myname/.ssh/id_ed25519 (コメントの文字)
と出たらOK。
一度この作業をしておけば、次からパスフレーズを求められることがなくなるので便利。(色々設定は必要だけれども)
次に、公開鍵をGitHubに登録するため、公開鍵の内容をクリップボードに保存しておく。
pbcopy < ~/.ssh/id_ed25519_github.pub
ターミナルの作業は一旦ここでストップ。まだ使うのでそのままにしておく。
GitHubの設定
github.comに戻り、Settingsから、「SSH and GPG keys」を選択する。
「New SSH key」のボタンをクリックして、公開鍵を貼り付ける。
「Add SSH key」を押すとアクセス認証画面が出るので、指示に従う。パスワードを使っても良い(Use your password)
接続テスト
ターミナルに戻り、アクセスできるか確認をする。以下のまま入力する。
ssh -T git@github.com
以下のようなメッセージが出るので、最後の行でyes
と入力する。
The authenticity of host 'github.com (20.27.177.113)' can't be established.
ED25519 key fingerprint is SHA256:****************************************
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
このメッセージが出たら成功。
Hi MaskerDog! You've successfully authenticated, but GitHub does not provide shell access.
注意
再起動でssh-addが消えるので対応をする必要がある。
.zshrcにssh-add --apple-load-keychain
を追加しておくとターミナル起動時にkeyを追加してくれる。
最後に
公式が一番くわしい。
https://docs.github.com/ja/authentication/connecting-to-github-with-ssh