Remote SSH using Back To My Mac

One of the less well publicised features of Apple’s iCloud service is Back To My Mac.

This service provides a private IPv6 network which you can use to securely connect all your Mac hosts.

To use BTMM you will need to upgrade all your Macs to OS X Lion and sign them all into the same Apple iCloud account. You will also need your unique BTMM account number.

When you are signed into iCloud you can discover your BTMM account number as follows:

$ dns-sd -E
Looking for recommended registration domains:
Timestamp     Recommended Registration domain
12:07:46.550  Added     (More)               local
12:07:46.550  Added                          icloud.com
                                             - > btmm
                                             - - > members
                                             - - - > 123456789

The final line shows your individual BTMM account number.

For example, if you Computer Name (set in System Preferences > Sharing) is mymac and your BTMM account number is 123456789, then the fully qualified domain name of the host is mymac.123456789.members.btmm.icloud.com.

If you have spaces in your Computer Name then replace them with dashes, e.g. “My Mac” becomes the hostname my-mac.

To test connectivity to your remote host use ping6, e.g.

ping6 mymac.123456789.members.btmm.icloud.com

To list all the SSH enabled hosts on your domain:

dns-sd -B _ssh._tcp

You would SSH into your host using this command:

ssh -2 -6 username@mymac.123456789.members.btmm.icloud.com

Note that you will only be able to communicate with the other hosts on your iCloud private network if the Mac you are using is also signed into the same iCloud account.

You can also use an open SSH connection to access your non-Apple hosts on your internal network by using SSH port forwarding. This tunnels the destination traffic over the BTMM private network via your remote Mac.

For example, if you have a web server running on a host with the IP address 192.168.1.2 then you can use this SSH command to set-up a forwarded port:

ssh -2 -6 -L 8080:192.168.1.2:80 username@mymac.123456789.members.btmm.icloud.com

To access the remote host from your local machine you would go to http://127.0.0.1:8080/

Advertisement

10 thoughts on “Remote SSH using Back To My Mac

  1. Brilliant – the only explanation I have found of how Lion/iCloud BTMM works and how to control remote login that not only works, but is actually intelligible!

    (and I had googled most of the known internet before landing here)

  2. Pingback: Bookmarks for 24th July 2012 | Lednor.Com

  3. -L is great, so is -R sometimes for NAT but in this situation -D is really much easier because you can set the proxy as a SOCKS proxy in System Preferences under Network, Advanced. That way you can use software like Adium, CoRD and your browsers through the tunnel.

  4. Pingback: Chris Miller - Using Sequel Pro with Back To My Mac

  5. i’m having problems with this since a network update. I can never see my remote office computer, but when I’m at work i can see my remote home computers?!

    And i seem to have 2 btmm numbers?

    dns-sd -E
    Looking for recommended registration domains:
    DATE: —Thu 06 Aug 2015—
    13:02:06.223 …STARTING…
    Timestamp Recommended Registration domain
    13:02:06.224 Added (More) local
    13:02:06.224 Added (More) icloud.com
    – > btmm
    – – > members
    – – – > 64577XXX
    13:02:06.224 Added icloud.com
    – > btmm
    – – > members
    – – – > 109262XXX

    How can this be?

  6. Pingback: Can I restart my Mac remotely via screen sharing if the screen shows only linen? - PhotoLens

  7. Pingback: Can I restart my Mac remotely via screen sharing if the screen shows only linen? - Best Way

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s