ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

GitHubでパーミッションディナーイされたら行う5つの作業

さて、最近Railsを使ったものを作るバイトを掴んだわけですが、

まずはbundle installするか…
なぜかここでコケてるな…
GitHubがどうのって言われてるなぁ…
ひょっとしてGitHubのせい?
↑あたりでした

というわけで、今回はGitHub絡みでPermission Deniedされたときの対処法です。
GitHub絡みでなんか調子が良くないときはまず、

ssh -T git@github.com

と打ち込んでみましょう。これで

Hi [your name]! You've successfully authenticated, but GitHub does not provide shell access.

とか言うのが出てきたら残念ながら今回はお役に立てません。他をあたってください。

Agent admitted failure to sign using the key.
Permission denied (publickey).

こんな感じでパーミッションディナーイされたらこれからやることを試しましょう。

対処法

1.鍵を作る

$ ssh-keygen -t rsa -C "メールアドレス"
Enter file in which to save the key (/home/hoge/.ssh/id_rsa): ~/.ssh/github_id_rsa
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in github_id_rsa.
Your public key has been saved in github_id_rsa.pub.

メールアドレスはGitHubのアカウントのものを使います。

2.鍵の登録

さっき作った鍵をGitHubで使えるようにします。
https://github.com/settings/ssh の「Add SSH Key」を押すと、鍵名と鍵の内容を入力するように言われますので、タイトルと公開鍵(今回はgithub_id_rsa.pub)の中身をコピーして登録します。

3. ~/.ssh/config の設定

このファイルがない場合は作ってください。以下のように~/.ssh/configというファイルへ書き足します。

Host github.com
  User git
  Hostname github.com
  IdentityFile ~/.ssh/github_id_rsa #さっき作った秘密鍵

4.まだ動かないあなたへ

ssh-agentを起動してさっき作った鍵を登録します。

$ eval `ssh-agent`
Agent pid 4493
$ ssh-add github_id_rsa
Identity added: github_id_rsa (github_id_rsa)

5.あの…まだ動かないんですけれども…

アアアッ