There's a very simple way to simply SSH to a BTMM/iCloud computer:
In Terminal, in the Shell menu select New Remote Connection... (cmd+shift+K). From here you can browse by ssh/sftp/ftp/telnet hosts on the local or BTMM network.
This is obviously much easier for the individual apps that support iCloud/BTMM lookup (e.g. you'll also see file shares in the side-bar of Finder, and remote Airport devices in Airport Utility), but I'll leave the full instructions below for the more arbitrary use-cases.
For command line tools, Apple have replaced the old
<computer-name>.<numeric-id>.members.btmm.icloud.com (where the
<numeric_id> field is a number automatically generated for your Apple ID).
Step 1: Find out your iCloud BTMM domain
First, look up your domain using the DNS Service Discovery tool:
# dns-sd -E
The output is formatted slightly awkwardly, but what you're after is the numeric ID, which should be on the last line. You're after the full domain, something like
dns-sd will display it (kind of) in reverse order, on separate lines:
23:41:33.309 Added icloud.com
- > btmm
- - > members
- - - > 12345678
You'll also need to press ctrl+C after it displays the information you're after (it is designed to continue listening and updating). This applies to each use of
dns-sd, here and below.
Step 2: List Computers
You can use these tools to browse that domain for services, e.g. for ssh servers:
# dns-sd -B _ssh 12345678.members.btmm.icloud.com
Or if you already know the hostname just access it directly as
computer-name.12345678.members.btmm.icloud.com. (Any spaces in your computer name will be hyphens in this domain).
You can only access this from a computer that is also set up for BTMM on the same Apple ID account, because this hostname will resolve to an IPv6 address that is really the end of an encrypted network tunnel between your Apple ID's BTMM computers.
If you want to see the IPv6 address for a specific host, you can type
# dns-sd -G v6 computer-name.12345678.members.btmm.icloud.com
And it'll display something like:
17:37:47.504 Add 2 0 computer-name.12345678.members.btmm.icloud.com. FD11:993E:64AE:4DEA:011F:FBD1:F444:11A1%<0> 152
Step 3: Connect
# ssh firstname.lastname@example.org
I'm not sure if that number will ever change, so you may or may not need to repeat Step 1 at some point later on... mine's been static for quite a few years now.