11
votes

Brief Context:
Hi, I am a university student (behind proxy 10.3.100.211:8080), new to ROR, Git & Heroku and have been following Ruby on Rails tutorial. I solved the problem of pushing git repo through ssh using following config in my ~/.ssh/config file (and it worked perfectly after that):

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

Problem:

However, on following https://devcenter.heroku.com/articles/git to use heroku for online app deployment, I am getting following error:

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

My current status is: $ git remote -v

heroku  [email protected]:deep-dusk-1030.git (fetch)  
heroku  [email protected]:deep-dusk-1030.git (push)  
origin  [email protected]:shaileshgupta/testapp.git (fetch)  
origin  [email protected]:shaileshgupta/testapp.git (push)  

Can anyone help me with github.com like settings for heroku.com to be written in my ~/.ssh/config file for seamless connection through ssh behind proxy using PORT 443/22.

Any help will be highly appreciated.

Update (Some More Information) I tried following settings and got following errors:

Configuration:

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

Error:

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

Another Configuration:

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

Error:

$ git push heroku master  
ERROR: Repository not found.  
fatal: The remote end hung up unexpectedly  
2
So...don't you need the same proxy configuration to reach heroku.com as you need to reach github.com?larsks
I tried it, but it is showing following error: $ git push heroku master ERROR: Repository not found. fatal: The remote end hung up unexpectedly.shailesh
Is there any problem with using ssh.heroku.com as Hostname? Does heroku also uses ssh.heroku.com as Hostname as github uses ssh.github.com for Hostname?shailesh
hey guys, can someone upvote this question to have an answer to it? @larsks?shailesh

2 Answers

5
votes

In your .ssh/config write this :

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

and in your .git/config change

[email protected]

to

git_heroku

The full line for a remote will look something like:

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

git_heroku is an alias; you need to change your git config to use that alias.

1
votes

In addition to answer above in your .ssh/config:

  • use ssh.heroku.com for Hostname instead of heroku.com
  • make sure you include your identity file IdentityFile "path to identity file"
  • don't specify Port

So my .ssh/config file looks something like this:

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

And appropriate lines in .git/config file:

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