表題の通り。
すでにローカルにあったメモをGitHubじゃなくてgistの方にあげようと突然思いついて、ペライチのmarkdownを適当に配置したgistを作ったあと、そのリポジトリを git remote add origin *repo name*
を実行して、pullを実行したら以下のようなエラーが出た。
$ git pull -p Warning: Permanently added the RSA host key for IP address '***' to the list of known hosts. git@gist.github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
弾かれる理由がわからなかったので実験もしてみた。
$ ssh -T git@github.com Hi kimikimi714! You've successfully authenticated, but GitHub does not provide shell access. $ ssh -T git@gist.github.com git@gist.github.com: Permission denied (publickey).
なるほど。もしかするとgistの方で読む必要のあるssh鍵がわからないのかもしれないと踏んだ。実際私のPCでは鍵を幾つか作っていた。
$ ll ~/.ssh total 40K -rw------- 1 kimikimi714 staff 801 12 24 16:54 config -rw------- 1 kimikimi714 staff 1.7K 2 25 2014 github_rsa -rw-r--r-- 1 kimikimi714 staff 403 2 25 2014 github_rsa.pub -rw------- 1 kimikimi714 staff 1.7K 12 18 2016 id_rsa -rw-r--r-- 1 kimikimi714 staff 414 12 18 2016 id_rsa.pub -rw-r--r-- 1 kimikimi714 staff 7.6K 12 24 16:45 known_hosts
たぶんgistへ接続するときにどの鍵を使えばいいかがわからなくて id_rsa
の方を使ってそう。なのでsshのテスト時に明示的に鍵を指定してみる。
$ ssh -i ~/.ssh/github_rsa -T git@gist.github.com Hi kimikimi714! You've successfully authenticated, but GitHub does not provide shell access.
予想的中。というわけで以下のようにconfigを書き換えた。
Host github.com IdentityFile ~/.ssh/github_rsa Host gist.github.com IdentityFile ~/.ssh/github_rsa
これで鍵を指定しないでsshのテストを実行すると
ssh -T git@gist.github.com Hi kimikimi714! You've successfully authenticated, but GitHub does not provide shell access.
🎉