Access GitHub From Behind a Firewall

I work in a pretty restrictive network that blocks port 22 (SSH) outside of the corporate network. So I usually do all of my work locally, committing my changes during the day, then push my commits when I go home in the evenings. A few times, this has presented issues when other people were waiting on a change that I had finished but was unable to push out… I recently discovered that GitHub also listens on port 443 for SSH traffic. This is significant because port 443 is used for SSL and firewalls can't “filter” traffic on this port due to the “man-in-the-middle” preventions that are present in SSL. There are some firewalls that can “filter” SSL because they place a certificate in the Trusted Certificate Authority Store on the local computer and then “issue” certificates on the fly for URL while connecting to the remote site and using the “official” certificate in the background… Luckily, my corporate firewall doesn't filter SSL for now…

In order to push to GitHub using port 443, you need to add ssh.github.com to your SSH configuration,

~/.ssh/config
host github.com
  hostname ssh.github.com
  IdentityFile ~/.ssh/id_rsa
  Port 443

That allows me to pull and push using the SSH configuration from GitHub.

jeast@computer:~/projects/mygithub
(master)$ git push
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 339 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
To git@github.com:dcjulian29/dcjulian29.git
   58836c6..a2ce5ac  master -> master
jeast@computer:~/projects/mygithub
(master)$