インターンではよくPrivate/internalリポジトリに招待され、招待された人しかcloneができないリポジトリをよく使う。
このリポジトリにプッシュ、プルしたりしてインターンの活動を進めるが、なぜか私のパソコンでは、ssh通信ができなかった。
Publicリポジトリだとssh通信ができるが、internalだとできない。(どうして….)
その原因は、SouceTreeにあった。
今までSouceTree産の公開鍵・秘密鍵を使っていた
SouceTreeは鍵をアプリ内のUIで作ることができ、その公開鍵をアカウントに登録するだけでssh通信ができるようになる。しかし、招待限定のinternalなどはssh通信できない鍵なのである。
よって、この鍵を消して、自分で新しく作らなければならない。
対策
SouceTreeの生成鍵を消して、新しく自分で作る。
まずはopen ~/.ssh/configで調査
.ssh配下にあるconfigを開きます
open ~/.ssh/config
# --- Sourcetree Generated ---
Host github.com
HostName github.com
User takokke
PreferredAuthentications publickey
IdentityFile /Users/ユーザー名/.ssh/アカウント名-GitHub
UseKeychain yes
AddKeysToAgent yes
# ----------------------------
発見しました。今回の悪さの原因が。
これを丸ごと消しちゃいます。
これを消さないと優先的に、SouceTree産の鍵は使われてしまいます。
code ~/.ssh
そして、SouceTreeで作られた公開鍵、秘密鍵を消す。
これでやっとSouceTreeの鍵とおさらばです。
ここからは、他の記事を参考にして公開鍵の登録を行います。
ssh-keygen -t ed25519 -C "githubアカウントのメールアドレス"
キーエージェントをバックグラウンドで動かす
eval "$(ssh-agent -s)”
configを開く
open ~/.ssh/config
作成した公開鍵とホスト名をセットにしてconfigに記録。
Host github.com
AddKeysToAgent yes
IdentityFile /Users/ユーザー名/.ssh/id_ed25519
User 自分のアカウント名
キーエージェントに登録
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
コピー
pbcopy < ~/.ssh/id_ed25519.pub
Github → 設定 → SSH キーと GPG キー に移動し公開鍵を登録します。
最後に通信の確認
ssh -T git@github.com
# =>Hi アカウント名!You've successfully authenticated, but GitHub does not provide shell access.
なぜかgit@github.com
の部分がgithub.com
で間違えている記事が多い。