Help us understand the problem. What is going on with this article?

Githubに接続できない時の対処法

More than 3 years have passed since last update.

はじめに

SSH接続するなんて、慣れた人には簡単なことでしょう。
しかし、たまに自分でも「あれ、これなんだっけなー」と思うことがあるので、ここによくある事例をまとめておくことにしました。
接続でコケた場合は参考にしてください。

GithubにSSH接続できないパターン

接続先サーバに公開鍵を登録していない

「鍵登録なんて忘れるわけないじゃん」と思うかもしれませんが、これで何度も苦しんでいる人を見かけたのでもう一度確認しましょう。
Githubに繋ぐには公開鍵・秘密鍵を作成し、公開鍵をGithubに登録する必要があります。また、秘密鍵は自分のサーバに置く必要があります。
また、鍵の作り方がわからない人は「ssh-keygen」で調べてみましょう。

秘密鍵が読めてない

Githubに公開鍵を登録したのはいいものの、SSH接続時に自サーバに置いた秘密鍵がうまく読めてないパターンがあります。
SSHで接続する際にデフォルトで読みにいく秘密鍵のパスは「~/.ssh/id_rsa」「~/.ssh/id_dsa」「~/.ssh/identity」のいずれかです。それ以外のパスで置いても読み込まれません。
また、パスがちゃんとしてるのに上手く読んでくれない場合は、「~/.ssh/config」の設定値を確認しましょう。もしかしたら変なパスを読みにいくような設定になっているのかもしれません。
もしconfigファイルがない場合は以下のように作って明示的に設定してあげてもよいです。

Host github
User git
Hostname github.com
Port 22
IdentityFile ~/.ssh/id_rsa # 秘密鍵のファイルパスを指定

秘密鍵のパーミッションがおかしい

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

SSH接続をしようとしてこんな派手なエラーメッセージが出たら、秘密鍵のパーミッションがおかしいです。パーミッションが777とかになっていませんか?0600でないと怒られます。秘密鍵ファイルのパーミッションを確認しましょう。

ssh-add していない

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

鍵がちゃんとしていても、ssh-addを忘れていると上記のようなエラーが出ることがあります。Macなどではssh-addは不要ですが、CentOSでは必要です。まずは「ssh-add -l」して状態を確認。読み込んでほしい秘密鍵のパスがちゃんと出てこればOKです。出てこなければ、ssh-addしましょう。

eval `ssh-agent`
ssh-add ~/.ssh/id_rsa

それでもダメなら

ssh -vT git@github.com

を打つとデバッグしてくれます。接続できない場合はどこかしらでエラーが出ると思うので内容を確認しましょう。
Githubのドキュメント( https://help.github.com/articles/error-permission-denied-publickey )も参照。

Githubにpush出来ないパターン

GithubにSSH出来た後で git push に失敗するパターンがあります。

httpsでcloneしてsshでpushしようとしたパターン

以下のようなエラーが出た場合です。
httpsでcloneしたリポジトリはそのままではsshでpush出来ません。

fatal: remote error:
You can't push to git://github.com/****/****.git
Use https://github.com/****/****.git

originを書き換えてあげる必要があります。
参考: http://qiita.com/ryokbys/items/9ac2accdc3b907961526

nyanchu
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした