Post

GitHubにEd25519鍵を生成して渡す方法

GitHubにEd25519鍵を生成して渡す方法

鍵の生成とGitHubへの登録

情報が古いのでこちらも紹介程度です。

現在0から学び直してるので現代に合わせてまた修正予定です。

公開鍵と秘密鍵を作成

1
$ ssh-keygen -t ed25519 -C "GitHubに登録したemail"

実行したら3つ入力(そのままEnterかパスフレーズ)

~/.ssh/configに記述

1
2
3
Host *
UseKeyChain yes
IdentityFile ~/.ssh/id_ed25519

公開鍵の中身をクリップボードにコピー

1
$ pbcopy <~/.ssh/id_ed25519.pub

GitHubに公開鍵を登録

GitHubを開いて/settings/ssh/newに移動 任意の名前と中身を貼り付けて登録完了

過去に作った古いアカウントによってアクセス拒否されるときは

キーチェーンアクセスを起動して検索フォームからキーワード「git」で検索

問題の古いアカウントのパスワードがピックアップされるので削除

UseKeyChain yesは無くても問題ないやも

複数アカウントを使いたい場合

とりあえず自分はターミナルからユーザー名を入力で切り替えられるようにしたhttps://t.co/HTo28yjS58

— Яɑ  (@rauszero) September 25, 2021

どのGitHubのアカウントか一目でわかるように
~/.zshrcにこんな感じで記述してる

export PROMPT="%F{cyan}[%~]%f `git config user.name</a>` \$ "

[]の中にカレントディレクトリ
現在のGitHubのアカウント
\$は一般ユーザーの時 $ rootの時 ## を表示 Macのターミナルのユーザー名の変更

— Яɑ  (@rauszero) September 25, 2021

~/.ssh/configはこんな感じに記述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Host github-xuqxu
  HostName github.com
  IdentityFile ~/.ssh/xuqxu
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

Host github-raus0
  HostName github.com
  IdentityFile ~/.ssh/raus0
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

ssh-agentを使う場合(使わんでもOK)

ssh-agentを起動

1
$ eval "$(ssh-agent -s)"

作成したSSH鍵をssh-agentに登録

1
$ ssh-add -K ~/.ssh/id_ed25519

~/.ssh/configに以下追記`

1
AddKeysToAgent yes

以下トラブルシューティング

forkしたリポジトリ限定でサブ垢によるpushがメイン垢によって拒否される キーチェーンから削除してもダメ

— Яɑ  (@rauszero) September 25, 2021

ssh-agentに鍵が余分に登録されてたから
$ ssh-add -D で全部消した
各鍵を作り直して登録したら解決https://t.co/ObDKsWtGnf

— Яɑ  (@rauszero) September 25, 2021
This post is licensed under CC BY 4.0 by the author.