191
198

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Last updated at Posted at 2015-02-19

はじめに

Github に SSH 接続することは、慣れていれば簡単なことでしょう。
しかし、久しぶりに接続失敗すると「あれ、これなんだっけな」と思うことがあるので、ここによくある事例をまとめておくことにしました。
接続で失敗した場合は参考にしてください。

また、最近は GitHub CLI (gh コマンド) を使うとこれらの設定を対話形式で自動化してくれるので、こちらを試してみても良いかもしれません。

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

GitHubに公開鍵を登録していない

「鍵登録なんて忘れるわけないじゃん」と思うかもしれませんが、これで何度も苦しんでいる人を見かけたのでもう一度確認しましょう。
GitHubにSSHで接続するには、自分のマシンで公開鍵・秘密鍵のペアを作成し、公開鍵(.pub) をGitHubの「Settings > SSH and GPG keys」から登録する必要があります。

鍵は以下のコマンドで作成します。もし古い RSA 形式の鍵を使っているなら、この機会に新しく作るのも良いでしょう。2026年現在はセキュリティとパフォーマンスの面から ed25519 形式が推奨されています。

ssh-keygen -t ed25519 -C "your_email@example.com"

秘密鍵が読めてない

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

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519 # 作成した秘密鍵のパスを指定

秘密鍵のパーミッションが適切でない

以下のようなエラーが出た場合は秘密鍵ファイルのパーミッションが原因です。

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

秘密鍵は重要なファイルであるため、パーミッションが 777 644 などになっているとエラーが発生します。 600 (所有者のみ読み書き可能)に変更しましょう。

chmod 600 ~/.ssh/id_rsa

SSH エージェントに鍵が追加されていない

環境(特定のLinuxディストリビューションなど)によっては、鍵が自動で認識されないことがあります。以下のようなエラーが出るケースです。

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

その場合は ssh-add コマンドで、使用する鍵をエージェントに登録する必要があります。
まずは ssh-add -l して状態を確認。読み込んでほしい秘密鍵のパスがちゃんと出てこればOKです。出てこなければ、ssh-add しましょう。

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

それでもダメなら

それでも上手くいかない場合は、-v オプションをつけて接続を試すと、詳細なログが出力されます。

ssh -vT git@github.com

このログの最後のほうを見れば、「鍵が見つからないのか」「認証で拒否されたのか」など、原因の切り分けが可能になります。
また、Github の公式ドキュメントも参考になります。

番外編: 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 を書き換えてあげる必要があります。

# 現在の設定を確認
git remote -v

# URL を SSH 形式に変更
git remote set-url origin git@github.com:ユーザー名/リポジトリ名.git
191
198
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
191
198

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?