概要
1台のPCで会社用と個人用、2つのgithubアカウントを管理したい。
ssh/configの設定でつまづいたので共有。
理由
会社のPCで個人の開発しようとgitからssh使ってcloneしたら、会社用のgitでpush,pull等ができなくなった。
後からわかることだが、sshの上書きをしてしまっていたようだ。。。(リモートの向き先が変わっていた?)
色々な記事を読んでいくうちにsshのconfigというものがあり、これをうまく使うと簡単にgitのためのssh keyを管理できるという。
ということで下記の記事を読みながらssh/configの設定をしてみた。
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~
~/.ssh/configについて
gitとsshのconfigについて(備忘録)
作業内容
- ssh keyを適当な名前で2つ作成
- gitへ登録
- ~/.ssh/configファイルの作成
- configに詳細をコピペ(IdentityFileは自分の作ったkeyに修正)
- 接続の確認
つまづいたこと
接続を確かめるためにssh -T git@github.com
やssh -T {config.User}@{config.Host}
などを試したが、毎度毎度
{ユーザー名}@github.com: Permission denied (publickey).
が返ってきてしまう。は?なんなん?接続できてないやんけ。
なのにSourcetreeからpushもpullもできるし。。。わけわからん。
Sourcetreeがなんか助けてくれてる??
原因と解決策
困ったことに原因はすごく簡単なことであった。
ssh keyのgitの登録がうまくいってなかった。
というのもサイトに転がってるpbcopy < ~/.ssh/id_rsa.pub
を使ってgitへ登録していのだ。
そりゃconfigでは~/.ssh/hoge(自分でつけた名前)
で登録してるんだから違うよって否定されるのも納得。
pbcopy < ~/.ssh/hoge
でkeyをコピーしてgithubに登録したら
Hi {ユーザー名}! You've successfully authenticated, but GitHub does not provide shell access.
が返ってきて無事接続が確認できた。
いやぁ、ssh keyを複数作成していたのが悪の根源だったのか。。。
めちゃくちゃつまづいたけどいい勉強になった。
まだまだ初学者だから阿呆らしいとこでつまづいていますが優しい目で見守ってください。