Git 1.7, Cygwin, WAMP
I love Cygwin.
Ok, now thats out of the way. We want to clone our Git repository to the local machine. However, the savvy and security-conscious sysadmin dude has changed the default SSH port on the server. Here’s how we clone a repository through SSH on a non-standard port.
In case you didn’t already know, the standard SSH port is 22. Often server administrators will change this in a bid to improve security. Otherwise, anyone who can type ssh [email protected] can have a million cracks at trying to break the root password. And, if they get in; well…
Not cool.
Launch Cygwin. Did I mention that I love Cygwin? Navigate to your sites directory. I will be breaking every rule in the geeks handbook of 2010 because I’m using WAMP. So, we do the following:
1 | $ cd /cygdrive/c/wamp/www |
Ok, we’re at our target directory. Normally, a Git clone request would look like this:
1 | $ git clone user@8.8.8.8:/home/repo/mydomain.git . |
But, in our case that would eventually timeout and fail. That is because Git will hook into SSH and use it to connect to the remote host. A straight piggy-back. It will attempt to connect via the default port of 22 for SSH, since we didn’t specify a different one.
Here’s the command we need in our case:
1 | $ git clone ssh://[email protected]:2222/home/repo/mydomain.git . |
We are explicitly telling Git to use SSH (which it would do anyway). We are also specifying a connection port with :2222, followed by the path/to/repo.
Obviously, 2222 is never a good port to use because it’s easy to guess. I’m just demonstrating the functionality here.
All done. Go version-control something.