Posso usar o endereço mDNS do Back To My Mac e para ssh e outros roteamentos de tráfego?

24

No Lion e no iCloud, a antiga nomeação de mDNS do MobileMe e Snow Leopard mudou e não funciona mais.

Gostaria de saber como usar as ferramentas de linha de comando para descobrir o nome DNS que a Apple atribuiu ao meu Mac. Quero usar esse nome DNS em outros dispositivos que não sejam OSX (como o prompt no meu iPad / iPhone) para enviar ssh de volta ao meu Mac quando estiver fora de casa.

bmike
fonte

Respostas:

36

Atualizar

Existe uma maneira muito simples de simplesmente fazer o SSH em um computador BTMM / iCloud:

No Terminal, no menu Shell, selecione Nova conexão remota ... (cmd + shift + K). A partir daqui, você pode navegar pelos hosts ssh / sftp / ftp / telnet na rede local ou BTMM.

Obviamente, isso é muito mais fácil para os aplicativos individuais que suportam a pesquisa do iCloud / BTMM (por exemplo, você também verá compartilhamentos de arquivos na barra lateral do Finder e dispositivos remotos do aeroporto no Airport Utility), mas vou deixar as instruções completas abaixo para os casos de uso mais arbitrários.


Para ferramentas de linha de comando, a Apple substituiu o antigo <computer-name>.<mobileme-name>.members.mac.compor <computer-name>.<numeric-id>.members.btmm.icloud.com(onde o <numeric_id>campo é um número gerado automaticamente para o seu ID Apple).

Etapa 1: descubra seu domínio do iCloud BTMM

Primeiro, procure seu domínio usando a ferramenta DNS Service Discovery:

# dns-sd -E

A saída é formatada de maneira um pouco estranha, mas o que você procura é o ID numérico, que deve estar na última linha. Você está atrás do domínio completo, algo como 12345678.members.btmm.icloud.com, no entanto dns-sd, o exibirá (mais ou menos) em ordem inversa, em linhas separadas:

23:41:33.309  Added                          icloud.com
                                             - > btmm
                                             - - > members
                                             - - - > 12345678

Você também precisará pressionar ctrl+ Capós exibir as informações que você procura (ele foi projetado para continuar ouvindo e atualizando). Isso se aplica a cada uso de dns-sd, aqui e abaixo.

Etapa 2: Listar computadores

Você pode usar estas ferramentas para procurar serviços nesse domínio, por exemplo, para servidores ssh:

# dns-sd -B _ssh 12345678.members.btmm.icloud.com

Ou se você já conhece o nome do host, basta acessá-lo diretamente como computer-name.12345678.members.btmm.icloud.com. (Quaisquer espaços no nome do seu computador serão hífens neste domínio).

Você pode acessá-lo em um computador que também esteja configurado para BTMM na mesma conta Apple ID, porque esse nome de host será resolvido para um endereço IPv6 que é realmente o fim de um túnel de rede criptografado entre os computadores BTMM de seu Apple ID.

Se você quiser ver o endereço IPv6 para um host específico, digite

# dns-sd -G v6 computer-name.12345678.members.btmm.icloud.com

E exibirá algo como:

17:37:47.504  Add     2  0 computer-name.12345678.members.btmm.icloud.com. FD11:993E:64AE:4DEA:011F:FBD1:F444:11A1%<0>  152

Etapa 3: conectar

# ssh [email protected]

Nota

Não tenho certeza se esse número vai mudar, então você pode ou não precisar repetir a Etapa 1 em algum momento mais tarde ... a minha está estática há alguns anos.

drfrogsplat
fonte
13

Esse não é o meu método preferido, mas o aplicativo Terminal também pesquisa sua conta do iCloud em todos os computadores do Back To My Mac que possuem um registro atual.

No menu Shell - Nova conexão remota ... + +K

Isso é bastante útil para configurar uma nova casa de conexão ssh / sftp quando você não estiver na Internet local ou o servidor DNS não procurará os registros AAAA que correspondem ao host atual.12346789.members.btmm.icloud.com. reserva de domínio.

bmike
fonte
E se o nome do computador tiver espaços? Isso parece estragar tudo D:
Alexander - Restabelece Monica
1
substitua os espaços por traços. Exemplo: "Work iMac" seria "Work-iMac"
Michael Irey
Isso é útil. O Terminal.app ainda fornece o sshcomando resultante que você pode colar no iTerm ou o que você realmente usar.
jogloran
10

Aqui está a resposta para sua pergunta ...

Acabei de aprender uma maneira bacana de encontrar seu nome de domínio BTMM

echo show Setup:/Network/BackToMyMac | scutil | sed -n 's/.* : *\(.*\).$/\1/p'

fonte: https://gist.github.com/1856804 por skyisle

Mas eis por que isso ainda não ajuda você ...

No entanto, observe que, mesmo que você conheça o domínio BackToMyMac, você poderá usá-lo apenas se estiver se conectando a partir de um computador conectado e conectado ao 'BackToMyMac'. Ele vai não trabalhar diretamente via Prompt.

(Acredito que a Apple considera isso um recurso relacionado à segurança. Caso contrário, qualquer pessoa na Internet poderia tentar obter acesso aos seus Macs se soubesse o nome de domínio BTMM.)

Existem outros sites na Web que oferecem hospedagem dinâmica de DNS para você. Eu uso o DynDNS há anos, mas eles se concentram cada vez mais comercialmente (costumava obter 5 nomes de host dinâmicos gratuitos, agora é 1, e você só pode obtê-lo dando um número de cartão de crédito e testando um de seus serviços premium e, em seguida, cancelá-lo).

Eu não usei http://www.no-ip.com/, mas eles também têm um cliente de atualização para Mac (que será atualizado automaticamente sempre que o endereço IP do seu Mac mudar) e fornecerão três nomes de host gratuitos se você criar uma conta gratuita (nenhuma informação de cartão de crédito é necessária).

Observe que isso não funciona tão facilmente quanto o BTMM, porque você ainda precisa ter portas abertas no roteador, etc. No entanto, ele funcionará com o Prompt e com outros hosts.

TJ Luoma
fonte
Você pregou a unha na cabeça com a condição de que atualmente é necessário um Mac para usar o BTMM nas duas extremidades.
bmike
Razões de segurança estão bem. Seria maravilhoso poder transferir para o meu Mac em casa a partir do meu iPhone, em qualquer lugar ... Apenas através do iCloud e sem sistemas de terceiros.
21415 Jonny