日別アーカイブ: 2013年11月14日

GitHubにpushやpullできなくなったときの対処法

おがた (@xtetsuji) です。

今日、ふとGitHubにpushしようと思ったら以下のようなエラーが出てしまってできませんでした。

ogata@languedechat:~/git/@github/xtetsuji/dotfiles$ git push origin master
no matching cipher found: client arcfour256 server aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

なんでだろうと思ってSSH秘密鍵まわりを確認したりしたりしたのですがうまくいかず。

チャット(Yancha)で聞いてみたら「以前そうなったけど、放置してたらいつのまにか治った」という話もあったりして、放置しようか、でもこのままの状態がいつまでも続くのは嫌だなーと思ってさらに調べていたら、以下のようなSSH設定が ~/.ssh/config にあったのを削除(またはコメントアウト)することで回避することができました。

# https://gist.github.com/e05183045b0db0e0c674
Host github.com
	Compression yes
	Ciphers arcfour256

GitHub側でarcfour256を一時的に受け付けなくなったということでしょうか。たしかに上述のGitHub側からのエラーを見ると、暗号化に関係するような感じもします。

この設定を書いておくとGitHubでのSSHを使ったcloneが速くなるという話がウェブ上にあるのですが、こういうトラブルに巻き込まれることもあるようです。検索しても出てこなかった。もしpullやpushができないという状況に遭遇したら、このSSH設定が存在すればオフにして再施行してみると良さそうです、というメモでした。

追記 (2013/11/14 20:15): 「GitHubのSSHゲートウェイはユーザごとにロードバランシングしていて、一部のゲートウェイサーバの変更によって、特定のユーザだけ一時的にこういう症状が出るのではないか」という説もいただきました。確かに私がこの症状に見舞われていた時、特に世間は騒いでいなかったわけで、納得出来る仮説であります。