2013-04-04 4 views
8

Я не могу использовать порт 22 по умолчанию и поэтому столкнулся с трудностями при настройке git и heroku в соответствии с учебным пособием hartl rails.push to heroku через порт 443

я смог нажать на мерзавца, включив следующие данные в файле ~/.ssh/конфигурации:

Host github.com 
User git 
Hostname ssh.github.com 
PreferredAuthentications publickey 
IdentityFile ~/.ssh/id_rsa 
Port 443 

Однако подобная запись не работает на Heroku:

Host heroku.com 
User git 
Hostname ssh.heroku.com 
PreferredAuthentications publickey 
IdentityFile ~/.ssh/id_rsa 
Port 443 

Это, кажется, висит на этой отладки линии:

debug1: identity file /c/Users/[my folder name]/.ssh/id_rsa type 1 

... перед отказом с этим сообщением:

ssh_exchange_identification: Connection closed by remote host. 

Я имел надежды на этот ответ, Error in git push heroku master through ssh behind proxy это не работает для меня тоже ...

Любые советы будут приветствовать.

+0

BTW, я только что увидел, где вы пытаетесь пройти руководство по рельсам. Мой ответ может быть тяжелым для этой цели, но если вы * просто не можете * нанести удар 22, подойдите куда-нибудь, или просто пропустите битки герою. – BnWasteland

+0

Я уже прошел через тут, пропустив герою, но теперь я пытаюсь сделать что-то на работе и хочу ее вынести. Наверное, я сделаю разработку на работе, подтолкнул ее к github и подтолкнул ее к герою из дома. Я просто надеялся, что может быть такое же простое решение, как и для той же проблемы с github ... – grooble

ответ

11

Heroku работает на создание альтернативных способов перемещения исходного кода на платформу, посмотрите на heroku push, например: https://github.com/ddollar/heroku-push

Он использует протокол HTTPS и, таким образом, не подвержены блокировке брандмауэра, который вы испытываете.

UPDATE

Heroku теперь поддерживает beta HTTP Git. Если проблема вызвана тем, что вы не можете получить доступ к Heroku на порту 22, тогда HTTP Git должен ее решить (он работает на порту 443).

Чтобы использовать HTTP Git, сначала убедитесь, что Toolbelt обновляется и что учетные данные являются актуальными:

$ heroku update 
$ heroku login 

(это важно, так как Heroku HTTP Git аутентифицирует в несколько иначе, чем остальные Toolbelt)

Во время бета-тестирования вы получаете HTTP, передавая флаг --http-git соответствующим командам heroku apps:create, heroku git:clone и heroku git:remote.Чтобы создать новое приложение и он будет настроен с помощью пульта дистанционного управления HTTP Git, выполните следующее:

$ heroku apps:create --http-git 

Для изменения существующего приложения с SSH к HTTP Git, просто запустить эту команду из каталога приложения на вашем компьютере:

$ heroku git:remote --http-git 
Git remote heroku updated 

Проверьте Dev Center documentation for details on how set up HTTP Git for Heroku.

+0

Это работает, и это легко. Спасибо за ссылку. – grooble

+0

Обученные. Классная вещь. – BnWasteland

1

Ничего себе. Я впечатлен тем, что github имел предусмотрительность для запуска ssh на 443. Вероятно, что геройку просто запускает https, что, очевидно, не позволит вам установить ssh-соединение для git.

Поскольку github работает на вас, почему бы не использовать это? Используйте сервис, например travisci, для просмотра github, сборки и развертывания для геройку.

Простой пример использования Трэвис: http://metabates.com/2012/10/23/deploying-to-heroku-from-travisci/

Смежные вопросы