2012-05-11 11 views
11

Kurz Kontext:
Hallo, ich bin ein Student (hinter Proxy 10.3.100.211:8080), neu zu ROR, Git & Heroku und wurden nach Ruby on Schienen-Tutorial. Ich löste das Problem der in meiner ~/.ssh/config-Datei git Repo über ssh mit folgenden Konfigurations drücken (und es funktionierte perfekt danach):Fehler in git push Heroku Master über ssh hinter Proxy

Host github.com 
Hostname ssh.github.com 
User git 
ProxyCommand corkscrew 10.3.100.211 8080 %h %p 
Port 443 

Problem:

jedoch auf folgende https://devcenter.heroku.com/articles/git Heroku für Online-App-Bereitstellung zu verwenden, ich folgende Fehler bekommen:

$git push heroku master 
ssh: connect to host heroku.com port 22: Connection refused 
fatal: The remote end hung up unexpectedly 

Mein aktueller Status ist: $ git remote -v

Kann mir jemand helfen mit github.com wie Einstellungen für heroku.com in meine ~/.ssh/config Datei geschrieben werden für nahtlose Verbindung durch ssh hinter Proxy mit PORT 443/22.

Jede Hilfe wird sehr geschätzt.

Update (mehr Informationen) ich folgende Einstellungen ausprobiert und bekam folgende Fehler:

Konfiguration:

Host heroku.com 
    Hostname ssh.heroku.com 
    User git 
    ProxyCommand corkscrew 10.3.100.211 8080 %h %p 
    Port 443 

Fehler:

$ git push heroku master 
ssh_exchange_identification: Connection closed by remote host 
fatal: The remote end hung up unexpectedly 

Eine weitere Konfiguration:

Host github.com, heroku.com 
    Hostname ssh.github.com 
    User git 
    ProxyCommand corkscrew 10.3.100.211 8080 %h %p 
    Port 443 

Fehler:

$ git push heroku master 
ERROR: Repository not found. 
fatal: The remote end hung up unexpectedly 
+0

So ... brauchen Sie nicht die gleiche Proxy-Konfiguration 'heroku.com' zu erreichen, wie Sie' github.com' erreichen müssen? – larsks

+0

Ich habe es versucht, aber es zeigt folgenden Fehler: ** $ git push heroku Meister ** Fehler: Repository nicht gefunden. fatal: Das Remote-Ende wurde unerwartet beendet. – shailesh

+0

Gibt es ein Problem bei der Verwendung von ssh.heroku.com als Hostname? Verwendet Heroku auch ssh.heroku.com als Hostname, während github ssh.github.com für Hostname verwendet? – shailesh

Antwort

5

In Ihrem .ssh/config schreiben dies:

Host git_heroku 
    Hostname heroku.com 
    User git 
    ProxyCommand corkscrew 10.3.100.211 8080 %h %p 
    Port 443 

und in Ihrer .git/config ändern

[email protected] 

zu

Die durchgezogene Linie für eine Remote wird, wie etwas aussehen:

[remote "appname"] 
    url = git_heroku:appname.git 
    fetch = +refs/heads/*:refs/remotes/appname/* 

git_heroku ist ein Alias; Sie müssen Ihre Git-Konfiguration ändern, um diesen Alias ​​zu verwenden.

+0

Können Sie mir ein Beispiel dafür geben, wie genau meine .git/config-Datei aussehen soll? Was meinst du, "ändern Sie es für die Verwendung von Alias" – Daniel

+0

@Daniel Hey ich habe diese Antwort kopiert - hoffe, es ist ein bisschen klarer. Ich habe hinzugefügt, was ich denke * sollte in der Git-Konfigurationsdatei gehen, aber lassen Sie mich wissen, ob es für Sie funktioniert. – culix

+0

Wenn du sagst "git_heroku ist ein Alias", meinst du einen Alias ​​für [email protected], richtig? Also sollte die Zeile in der Konfigurationsdatei lauten: [alias] \t git_heroku = [email protected] ... ist das richtig? – grooble

1

Zusätzlich zu oben in Ihrem beantworten.ssh/config:

  • Verwendung ssh.heroku.com für Hostname statt heroku.com
  • Händigen Sie Ihre Identität Datei IdentityFile "path to identity file"
  • nicht angeben Port

Also meine .ssh/config-Datei aussieht etwas wie dieses:

Host git_heroku 
ProxyCommand corkscrew proxy.usurt.ru 3128 %h %p 
HostName ssh.heroku.com 
User git 
IdentityFile "~/.ssh/id_rsa.pub" 

Und entsprechende Zeilen in .git/config-Datei:

[remote "heroku"] 
    url = git_heroku:still-taiga-2820.git 
    fetch = +refs/heads/*:refs/remotes/heroku/* 
Verwandte Themen