SSH- (und SFTP-) Server auf Android, erkennbar über Avahi/Bonjour

Ich möchte, dass mein Android-Gerät (ein Samsung Galaxy) über Avahi/Bonjour erkennbar ist, wenn es mit einem WLAN-Netzwerk verbunden ist, und dann über SSH (SFTP) auf sein Dateisystem zugreifen kann.

Für mich ist das ein vertrauter und bequemer Weg, um auf verschiedene Geräte in meinem lokalen Netzwerk zuzugreifen: ihren SSh-Dienst über Avahi/Bonjour zu entdecken (nicht mit IP-Adressen umgehen zu müssen) und per SSH zu ihnen zu gelangen. Ich würde diesen Weg für meine GNU/Linux-Systeme (wie Ubuntu) verwenden.

Gibt es kostenlose (= libre – weil ich die Freiheit des Hackens schätze) Software für Android, die dies implementieren würde, nämlich:

  • avahi/bonjour-Unterstützung für Android, sodass das Android-Gerät über den Namen in der .local-Domain erreichbar wäre (statt nur über seine IP-Adresse);
  • und ein SSH-Server mit Unterstützung für die Veröffentlichung über Avahi/bonjour (mdnssd).
Genau der gleiche Wunsch -- android.stackexchange.com/questions/20907/… : SSH zu Android nicht über seine IP, sondern über den über zeroconf/bonjour/avahi/mdns (wie auch immer Sie es nennen) erworbenen Namen. Noch besser wäre es, wenn der SSH-Dienst über zeroconf/bonjour/avahi/mdns/dnssd (wie auch immer man es nennt) veröffentlicht würde.
Zum SSH-Teil des Wunsches gibt es bereits Q&As: android.stackexchange.com/questions/9905/… , android.stackexchange.com/questions/15503/… . (Obwohl ich herausfinden muss, ob die vorgeschlagenen Lösungen freie/freie Software sind - um meine Frage zu beantworten.) Der Avahi/bonjour/zeroconf-Unterstützungsteil meiner Frage ist jedoch ohne Antwort ...
Ich weiß, dass es nicht dasselbe ist, aber auf der Suche nach der "endgültigen Lösung": Ich habe meinem Router DHCP empfohlen, den Geräten eine statische IP zuzuweisen, und dies dann mit meinem lokalen DNS konfiguriert (Sie könnten dies auch über tun /etc/hosts). Ich muss mir also keine IPs merken, sondern die "Nicknames" der Geräte, was im Vergleich recht einfach ist.
@Izzy: Ich verstehe, danke, das ist eine sehr vernünftige Problemumgehung. Aber leider scheint es in meinem Fall, dass ich (als Router) eine Airport Extreme-Basisstation habe, die "DHCP-Reservierungen" nicht unterstützt . Außerdem wäre es schön, wenn ich mich als „Gast“ (in einem nicht von mir konfigurierten Netzwerk) über einen „Spitznamen“ mit dem Gerät verbinden könnte.
Klar, das war von Anfang an klar -- deshalb dachte ich es als Workaround bis man eine echte Lösung findet. Es gibt Apps, mit denen Sie eine "feste IP nach Bedarf / per Netzwerk" konfigurieren können (im Gegensatz zum "festen DHCP"), die sogar mit Ihrer extremen Flughafen-Basisstation funktionieren sollte. Wenn Sie interessiert sind, könnte ich dies zusammenfassen und in eine Antwort aufnehmen (zusammen mit meinem obigen Kommentar).
Ich bin auf einen Code gestoßen, in dem versucht wird, eine Java-mdns-Implementierung und einen Quellcode von Avahi auf Android zu verwenden - code.google.com/p/zeroconf-for-android/source/browse/trunk (Es war ein Projekt um " eine einfache Android-Anwendung zum Verwalten von Geräten (elektronische Geräte wie Lampen) über ein konfigurationsfreies Netzwerk zu erstellen ".) Ich bin mir nicht sicher, wie es funktioniert und ob dieser Code für die Veröffentlichung der SSH-Dienste angepasst werden kann ...

Antworten (1)

Ich benutze den kostenlosen SSHelper (ohne zu rooten), seit er kürzlich ZeroConf Broadcasting hinzugefügt hat. Es bietet einen SSH- und RSYNC-Server (Dateiübertragung) und sendet gleichzeitig einen ZeroConf-Namen. Ein anderer Avahi/Bonjour-Client kann eine Verbindung herstellen, ohne den Android-Hostnamen kennen zu müssen. Ausführlicher erklärt in dieser anderen Antwort: Legen Sie den Hostnamen für SSHelper fest

Vielen Dank für die Informationen! Jetzt kenne ich zumindest eine Möglichkeit, dies einzurichten. Ich bevorzuge freie Software (= libre, open-source). Sollte ich SSHelper dann in Betracht ziehen? (Ich weiß noch nicht, ob es sich um kostenlose Software handelt.)
@glenschler Hallo, ich habe gerade SSHelper ausprobiert, aber ich habe nicht herausgefunden, wie ich mit dem Namen eine Verbindung zu o ssh herstellen kann. Ich habe den Quellcode ausgecheckt und er scheint "SSHelper" als Zeroconf-Namen zu verwenden, aber ich kann mich nicht wie folgt damit verbinden: ssh SSHelper:2222. Irgendwelche Hinweise/Tipps? Danke
@george-profenza Ich wusste nicht, dass der Quellcode verfügbar ist. Ich muss nachforschen. Sie sollten Ihr Netzwerk nach allen „Avahi“-Namen durchsuchen. Dies unterscheidet sich von Ihrem Mac- oder Linux-Computer. android.stackexchange.com/questions/42358/…
@glenschler Ich habe Avahi auf einem Raspberry Pi verwendet und konnte nach der Installation als rpi.local auf mein Pi zugreifen. Unter Windows musste ich den Bonjour-Dienst installieren. Ich habe versucht, auf ssh/http zuzugreifen, indem ich den SSHelper-Hostnamen verwende (den ich auf einem laufenden Mac sehen dns-sd -Bkonnte), aber ich konnte keine Verbindung herstellen. Wie stellen Sie mit SSHelper über den Namen (welchen Namen verwenden Sie) eine Verbindung zu Ihrem Telefon her?
Es gibt eine neue Version 5.5 von SSHelper. Ja, um die vorherige Frage zu beantworten, es handelt sich um kostenlose Software. Sie können jetzt einen benutzerdefinierten Namen konfigurieren! Meine Anweisungen sind hier detailliert : android.stackexchange.com/questions/42358/…
Aufgrund von Änderungen in der API funktioniert es nicht mehr in Android 11 und höher.