整理自:http://ruby-china.org/topics/10813

部署到Heroku时输入 git push heroku master. 然后就开始漫长的等待了,最终报错:

ssh: connect to host heroku.com port 22: Connection timed out
fatal: Could not read from remote repository.

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

一开始以为是自己的 ssh key没更新,查了一下SO:

heroku keys  # 查看你当前拥有的key

可用如下命令生成新key:  ssh-keygen -t rsa 

然后添加到heroku上:  heroku keys:add

重新push发现还是不对,郁闷,估计十有八九是 GFW 在作怪了,果不其然!!!

ssh -v [email protected]  检查后发现很多节点不能用

(其实我这边没有出现帖子上那样的结果,好像就出现了一个节点的测试,应该是运行命令前没设定config文件的Host)

仅有一个节点可用:107.21.95.3

手动配置 vi ~/.ssh/config,输入

Host heroku.com
User whyisyoung
Hostname 107.21.95.3 #关键设置,替代proxy.heroku.com,直接走IP。
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
port 22

这下好了,速度还不错。就是 bundle install 的时候会稍微慢点(尽管用的是淘宝的镜像)

我就说每次用heroku怎么各种无法上传!!!

GFW 你还要坑我们多少年!!!

另外帖子下面还提到了 用同样的办法解决了bitbucket push不上去的问题,有需要的朋友自行琢磨~

原来csdn不支持 <code></code>啊。。。。。。。

05-11 10:48