Servidor SSH (e SFTP) no Android detectável através de avahi / bonjour

16

Gostaria que meu dispositivo Android (um Samsung Galaxy) fosse descoberto por meio de avahi / bonjour quando estiver conectado a uma rede Wi-Fi e, em seguida, pudesse acessar seu sistema de arquivos via SSH (SFTP).

Para mim, essa é uma maneira familiar e conveniente de acessar vários dispositivos na minha rede local: descobrir o serviço SSh via avahi / bonjour (para não precisar lidar com endereços IP) e enviar ssh para eles. Eu usaria esse caminho para meus sistemas GNU / Linux (como o Ubuntu).

Existe um software gratuito (= libre - porque aprecio a liberdade de hacking) para Android que implementaria isso, a saber:

  • suporte avahi / bonjour para Android, para que o dispositivo Android possa ser acessado por nome no domínio local. (em vez de apenas pelo endereço IP);
  • e um servidor SSH com suporte para publicação por meio do Avahi / bonjour (mdnssd).
imz - Ivan Zakharyaschev
fonte
Exatamente o mesmo desejo - android.stackexchange.com/questions/20907/… : ssh para Android, não pelo seu IP, mas pelo nome adquirido via zeroconf / bonjour / avahi / mdns (como você quiser). Seria ainda melhor se o serviço SSH fosse publicado via zeroconf / bonjour / avahi / mdns / dnssd (como você quiser).
imz - Ivan Zakharyaschev
Quanto à parte SSH do desejo, já existem perguntas e respostas: android.stackexchange.com/questions/9905/… , android.stackexchange.com/questions/15503/… . (Embora eu tenha que descobrir se as soluções sugeridas são software livre / libre - para responder à minha pergunta.) A parte de suporte do avahi / bonjour / zeroconf é parte da minha pergunta sem resposta ...
imz - Ivan Zakharyaschev 13/08/12
2
Sei que não é a mesma coisa, mas, ao procurar a "solução final": aconselhei o DHCP dos roteadores a atribuir um IP estático aos dispositivos e configurei isso com o DNS local (você também pode fazê-lo via /etc/hosts). Portanto, não preciso me lembrar de IPs, mas os dispositivos "apelidos", o que é bastante fácil de comparar.
Izzy
@ Izzy: Entendo, obrigado, essa é uma solução bastante razoável. Mas, infelizmente, no meu caso, parece que tenho (como roteador) uma estação base Airport Extreme que não suporta "reservas DHCP" . Além disso, seria bom poder conectar-se ao dispositivo com um "apelido" na situação em que sou um "convidado" (em uma rede não configurada por mim).
imz - Ivan Zakharyaschev
2
Claro, isso foi entendido desde o início - é por isso que eu pensei que era uma solução alternativa até encontrar uma solução real. Existem aplicativos disponíveis que permitem configurar um "IP fixo sob demanda / por rede" (em oposição ao "DHCP fixo"), que deve funcionar com sua base extrema de aeroporto. Se você estiver interessado, eu poderia resumir isso e colocá-lo em uma resposta (junto com o meu comentário acima).
Izzy

Respostas:

2

Eu tenho usado o SSHelper gratuito (sem enraizamento) desde que recentemente adicionou a transmissão zeroConf. Ele fornece um servidor SSH e RSYNC (transferência de arquivos), enquanto também transmite um nome ZeroConf. Outro cliente avahi / bonjour pode se conectar sem precisar saber o nome do host do Android. Explicado em mais detalhes nesta outra resposta: Defina o nome do host para SSHelper

Glenschler
fonte
Muito obrigado pela informação! Agora, pelo menos, conheço uma possibilidade de configurar isso. Eu prefiro usar software livre (= libre, código aberto). Devo considerar SSHelper então .. (eu não sei ainda se é software livre.)?
IMZ - Ivan Zakharyaschev
@glenschler Oi, eu apenas tentei o SSHelper, mas ainda não descobri como conectar o ssh usando o nome. Eu verifiquei o código-fonte e parece usar "SSHelper" como o nome zeroconf, mas não posso ligar para ele assim: ssh SSHelper:2222. Alguma dica / dica? Obrigado
George Profenza
@ george-profenza Eu não sabia que o código fonte estava disponível. Vou precisar investigar. Você deve procurar na rede todos os nomes "avahi". Isso será diferente da sua máquina Mac ou Linux. android.stackexchange.com/questions/42358/...
glenschler
@glenschler Eu usei o avahi em um Raspberry Pi e depois de instalá-lo pude acessar meu pi como rpi.local. Nas janelas, tive que instalar o serviço bonjour. Eu tentei acessar ssh / http usando o nome de host SSHelper (que eu podia ver listado em um Mac em execução dns-sd -B), mas não consegui conectar a ele. Como você se conecta ao seu telefone pelo nome (qual nome você usa) com o SSHelper?
George Profenza
Há uma nova versão 5.5 do SSHelper. Sim, para responder à pergunta anterior, é um software livre. Agora você pode configurar um nome personalizado! Minhas instruções são detalhadas aqui android.stackexchange.com/questions/42358/…
glenschler 31/03