GitHub
SSH

GitHub に複数デバイスからアクセスするときの鍵認証でつまづいた

普段 GitHub は Macbook Air からアクセスしてたのだけど、最近 iMac で作業することも多いので、iMac からもアクセスできるようにしようと思ったら鍵認証のとこでハマったのでメモ。

GitHub とか SSH 鍵の設定はこの辺りを参照。

- Set Up Git | GitHub Help

- Create A Repo | GitHub Help

- Generating SSH Keys | GitHub Help

で、ハマったところですが、鍵ペアを作って公開鍵を GitHub に登録して、

$ ssh -T git@github.com

で接続を試みるも Permission denied (publickey). とエラーが出てしまうというもの。

これは、ssh した時に、デフォルトで読みに行く秘密鍵が ~/.ssh/id_rsa だけだからだそうな。

※ssh-keygen した時の秘密鍵のデフォの名前が id_rsa

参考:SSHの鍵交換でPermission denied | わーくあうと!

ということで、~/.ssh/config ファイルに以下の設定を書けばOK。

identityFile が読みに行く秘密鍵の設定です。

(config がない場合は自分で作る)

Host [任意のホスト名]
  User git
  Port 22
  HostName github.com
  IdentityFile ~/.ssh/[公開鍵の名前]
  TCPKeepAlive yes
  IdentitiesOnly yes  

上記設定を書くと、ssh で指定する接続先は git@github.com ではなく[任意のホスト名] になるので気をつけましょう。

$ ssh -T [任意のホスト名]

ですね。

参考:【メモ】githubの複数アカウントにSSH接続するための設定手順 | Developers.IO



以上!



追記:

github に対してローカルから clone とかする場合は、

$ git clone [任意のホスト名]:[githubのユーザー名]/[リポジトリ名].git

になります。

[任意のホスト名] のところを、https://hoge とか git@github.com とかなんだかとかにしがちですが、そうすると clone できても push とかできなくなるので注意。