Servidor SSH (y SFTP) en Android reconocible a través de avahi/bonjour

Me gustaría que mi dispositivo Android (un Samsung Galaxy) sea reconocible a través de avahi/bonjour cuando esté conectado a una red WiFi, y luego poder acceder a su sistema de archivos a través de SSH (SFTP).

Para mí, esa es una forma familiar y conveniente de acceder a varios dispositivos en mi red local: descubrir su servicio SSh a través de avahi/bonjour (no tener que lidiar con direcciones IP) y enviarles ssh. Usaría esta forma para mis sistemas GNU/Linux (como Ubuntu).

¿Existe un software gratuito (= libre, porque aprecio la libertad de piratear) para Android que implementaría esto, a saber:

  • compatibilidad con avahi/bonjour para Android, de modo que se pueda acceder al dispositivo Android por nombre en el dominio .local (en lugar de solo por su dirección IP);
  • y un servidor SSH con soporte para publicarse a través de Avahi/bonjour (mdnssd).
Solo el mismo deseo -- android.stackexchange.com/questions/20907/… : para ssh a Android no por su IP, sino por el nombre adquirido a través de zeroconf/bonjour/avahi/mdns (como sea que lo llames). Sería aún mejor si el servicio SSH se publicara a través de zeroconf/bonjour/avahi/mdns/dnssd (como sea que lo llames).
En cuanto a la parte SSH del deseo, ya hay preguntas y respuestas: android.stackexchange.com/questions/9905/… , android.stackexchange.com/questions/15503/… . (Aunque tendré que averiguar si las soluciones sugeridas son software gratuito/libre, para responder a mi pregunta). Sin embargo, la parte de soporte de avahi/bonjour/zeroconf de mi pregunta no tiene respuesta...
Sé que no es lo mismo, pero mientras buscaba la "solución final": aconsejé a mis enrutadores DHCP que asignaran a los dispositivos una IP estática y luego la configuré con mi DNS local (también puede hacerlo a través de /etc/hosts). Así que no tengo que recordar las direcciones IP, sino los "apodos" de los dispositivos, lo cual es bastante fácil en comparación.
@Izzy: Ya veo, gracias, es una solución muy razonable. Pero desafortunadamente, en mi caso, parece que tengo (como enrutador) una estación base Airport Extreme que no admite "reservas DHCP" . Además, sería bueno poder conectarme al dispositivo mediante un "apodo" en la situación en la que soy un "invitado" (en una red no configurada por mí).
Claro, eso se entendió desde el principio, por eso lo pensé como una solución alternativa hasta que encontraras una solución real. Hay aplicaciones disponibles que le permiten configurar una "IP fija bajo demanda / por red" (a diferencia del "DHCP fijo"), que incluso debería funcionar con su estación base extrema del aeropuerto. Si está interesado, podría resumir esto y colocarlo en una respuesta (junto con mi comentario anterior).
Me topé con un código en el que intentan usar una implementación de Java mdns y un código fuente de avahi en Android: code.google.com/p/zeroconf-for-android/source/browse/trunk (Era un proyecto para " crear una aplicación de Android simple para administrar dispositivos (dispositivos electrónicos como lámparas) a través de redes de configuración cero ".) No estoy seguro de cómo funciona, y si este código se puede adaptar para publicar los servicios SSH ...

Respuestas (1)

He estado usando el SSHelper gratuito (sin enraizamiento) desde que recientemente agregó la transmisión de zeroConf. Proporciona un servidor SSH y RSYNC (transferencia de archivos), al mismo tiempo que transmite un nombre de ZeroConf. Otro cliente avahi/bonjour puede conectarse sin necesidad de conocer el nombre de host de Android. Explicado con más detalle en esta otra respuesta: Establecer nombre de host para SSHelper

¡Muchas gracias por la información! Ahora al menos conozco una posibilidad de configurar esto. Prefiero usar software libre (= libre, open-source). Entonces, ¿debería considerar SSHelper?... (Aún no sé si es software libre).
@glenschler Hola, acabo de probar SSHelper pero no he descubierto cómo conectarme a ssh usando el nombre. Revisé el código fuente y parece usar "SSHelper" como nombre de zeroconf, pero no puedo conectarme así: ssh SSHelper:2222. ¿Algún consejo/consejo? Gracias
@ george-profenza No sabía que el código fuente estaba disponible. Tendré que investigar. Debe buscar en su red todos los nombres "avahi". Esto será diferente de su máquina Mac o Linux. android.stackexchange.com/questions/42358/…
@glenschler He usado avahi en una Raspberry Pi y después de instalarla pude acceder a mi pi como rpi.local. En Windows tuve que instalar el servicio bonjour. Intenté acceder a ssh/http usando el nombre de host SSHelper (que pude ver en una Mac en ejecución dns-sd -B) pero no pude conectarme. ¿Cómo se conecta a su teléfono por nombre (qué nombre usa) con SSHelper?
Hay una nueva versión 5.5 de SSHelper. Sí, para responder a la pregunta anterior, es software libre. ¡Ya puedes configurar un nombre personalizado! Mis instrucciones se detallan aquí android.stackexchange.com/questions/42358/…
Debido a cambios en la API, ya no funciona en Android 11 y versiones posteriores.