Search code examples
macossshmercurialbitbucket

How to setup SSH with Mercurial and Bitbucket on Mac OSX?


I cannot find a simple step-by-step guide to setup an OSX machine with Bitbucket and SSH.

So it requires me to google for different pages (to create SSH keys and to set them up in Bitbucket) whenever I'm setting up a new machine. It seems valuable to have one complete list available in StackOverflow.


Solution

  • It's actually pretty straightforward.

    Check if you have a public key already that you could reuse:

    ls -a ~/.ssh
    

    If there is NO public key file id_rsa.pub then generate one:

    ssh-keygen
    

    Accept defaults. I don't enter password because I prefer to keep my hard drive encrypted whenever the repository contents are critical.

    Copy your public key to clipboard:

    pbcopy < ~/.ssh/id_rsa.pub
    

    Let Bitbucket know the identity of your computer:

    • Go to https://bitbucket.org
    • Open your account settings under your avatar
    • Find "SSH keys" and choose to add a new one
    • Paste your public key from pbcopy

    Clone (pull, push or whatever) your repository using SSH:

    hg clone ssh://hg@bitbucket.org/<username>/<repository>
    

    First time you will get a warning similar to this:

    The authenticity of host 'bitbucket.org (104.192.143.1)' can't be established.
    RSA key fingerprint is 97:...:40.
    

    You should google for "Bitbucket fingerprint" and compare what you see in terminal with what Atlassian documentation gives because fingerprints could change and can be faked.

    Have fun!