Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Connecting to Heroku using port 443

Tags:

ssh

heroku

I'm a university student and all ports except 80, 443 are blocked. I'm able to connect to github via

Host github.com                                                                                    
  Hostname ssh.github.com
  Port 443

git push heroku master gives me this error:

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

I've tried the solutions posted here on SO but I've still not got it working. Is there a way I can connect to heroku do deploy my websites?

Thanks a lot

like image 352
Prakhar Avatar asked Dec 11 '22 17:12

Prakhar


2 Answers

Heroku ssh only works over port 22. There is, however, a plugin that lets you push via HTTP. It does not use git, though. Instead, you heroku push.

https://github.com/ddollar/heroku-push

like image 178
Naaman Newbold Avatar answered Dec 21 '22 17:12

Naaman Newbold


If your SSH port been blocked and wish to push into heroku using alternate port then you may consider Tunneling.

For tunneling you are required to have additional PC or Server resides outside of blocked network and having access to Port 22.

For the scenario below we can use house PC to tunnel into heroku server. Since the university network only allow Port 80 and 443, we can set the House PC to receive connection via port 443 and tunnel it to port 22.

At House PC:

  1. Configure SSH server in the house PC to run on port 443. Refer here to configure SSH Server on Multiple Ports

University PC:

  1. Configure University PC to resolve git_tunnel alias to point to localhost on port 9001. Edit ~/.ssh/config and add following

    # ~/.ssh/config
    
    Host git_tunnel
       Hostname 127.0.0.1
       User git
       Port 9001
    
  2. Add a new remote alias as tunnel which will point to git@git_tunnel:{app name}.git

    git remote add tunnel git@git_tunnel:{app name}.git

  3. From the University PC establish tunnel to house PC which listening on port 443.

    ssh -L 9001:heroku.com:22 -p 443 [email protected]

  4. Deploy to heroku using alias tunnel created earlier

    git push tunnel master

like image 39
AzizSM Avatar answered Dec 21 '22 18:12

AzizSM