SSH Client implementieren

M

maksimilian

Ambitioniertes Mitglied
0
Hallo Ihr,

ich möchte in eine vorhandene App die zusätzliche Funktion einbauen, einen Server (Python-Skript) in einem Raspi-System zu starten. Das geht ja wohl am einfachsten mit SSH. Wie gehe ich mit Java an dieses Thema ran ?

maksimilian
 
Hallo Vielleicht mit "JSch"

in einem anderen Java Forum hast du ja schon mal mit JSch gearbeitet und am Ende gesagt das es geht.
Wieso jetzt hier wieder neu?

Prinzipiell muss ich sagen ob es so gut ist. Einen SSH Client in einer Android App zu benutzen um einen Rechner Fernzusteuern.
Du willst mit SSH auf deinen PI einen (Python) Server starten. Eine Fernwartung machen.

Warum lässt du den nicht immer laufen?
Oder benutzt einen Webserver mit PHP der das für dich macht.
Apache müsste auch python können.

Dein SSH auf dem PI müsste ja auch immer Laufen damit die Fernwartung geht.

Problem sehe ich darin das du in der APP das PW für den SSH Login speichern musst. Um eine Verbindung herzustellen. Diese PW kann man leicht aus der App holen und ein voller Zugriff auf deinen Server währe frei für jedermann.
Willst du Das?

Bau dir mit Python , PHP… ein Backend und auch eine Userverwaltung mit DB. Damit nicht jeder auf deinen Server (PI) kommt.


PS. SSH verursacht auch oft grosse Latenzzeiten.
 
Zuletzt bearbeitet:
jogimuc schrieb:
Hallo Vielleicht mit "JSch"

in einem anderen Java Forum hast du ja schon mal mit JSch gearbeitet und am Ende gesagt das es geht.
Wieso jetzt hier wieder neu?

Ich werde also forumübergreifend beobachtet 😉 An jsch scheint kein Weg vorbeizuführen. Danke für die "Sorge" um die Sicherheit meiner App. Die treibt sich nur, und das auch nur 2x am Tag, im WLAN herum. Die SSH Funktion würde nur selten angewendet. Für Fernwartung des Pi benötige ich keinen eigenen Server. Ich logge mich sporadisch mit SSH ins PI-System ein.
Könnte man das Passwort "verschleiern" ? Notfalls abfragen, so dass es nicht im Code der App steht.

jogimuc schrieb:
Bau dir mit Python , PHP… ein Backend und auch eine Userverwaltung mit DB. Damit nicht jeder auf deinen Server (PI) kommt.
Damit würde ich mit Kanonen auf Spatzen schießen (obwohl mich die Implementierung als eigene Aufgabe reizen würde). Im Server führe ich eine Whitelist der zugelassenen IPs.

Nochmal danke für Deine Kommentare, jogimuc. Mit denen komme ich doch etwas schneller vorwärts bzw. erhalte neue Anregungen.
 
Für Fernwartung des Pi benötige ich keinen eigenen Server. Ich logge mich sporadisch mit SSH ins PI-System ein.
SSH ist ein Serverdienst auf dem Pi. Also ein Server der da Läuft.
Teste mit netstat du wirst sehen das der Port 22 offen ist vom Pi.


Im Server führe ich eine Whitelist der zugelassenen IPs.
Wenn du das SSH PW freigibst ist es mir deiner Wheitliste zu spät. Der Eindringling hat freie Hand.

Wenn es nur lokal in deinen LAN ist, und nach außen nicht sichtbar ist, ist es kein Thema.
Öffentlich würde ich so etwas nie machen.


Für Fernwartung des Pi benötige ich keinen eigenen Server.
Klar der Pi bietet dir SSH oder Telnet zum Verbinden. Und was ist das ein Serverdienst (Demon ) der auf deinem Pi läuft.


Die SSH Funktion würde nur selten angewendet
Dann müsstest du es dekatieren, und wie willst du nun deinen Python Server starten?
Ob du ihn nutzt oder nicht der Diest (Server) läuft wenn activ immer.
Ist es von außen zugänglich solltest du das PW nicht freigeben.

Grudlagen Netzwerk würde ich sagen.


PS Was ist das für ein Server (Protokoll) den du da startetst?
 
Zuletzt bearbeitet:
Könnte man das Passwort "verschleiern" ? Notfalls abfragen, so dass es nicht im Code der App steht.
Verschleiern weniger.
Du könntest eine klaschische pw Eingabe in deiner App machen. Und es den User direkt selber sagen. Geht er dann sorgsam damit um ist es sicherer.


Aber nach außen würde ich das auch nicht machen und wenn dann über ein VPN SSH Tunnel.

Den SSH zugang würde ich überhaupt kein en User geben.
 
Der (Pi) Server ist eine (ganz private) Steuerungs-SW für zwei Türen einer Hühnerhütte und arbeitet mit dem TCP Protokoll. Nichts Außergewöhnliches. Um asynchrone bidirektionale Kommunikation zwischen Python-Server und Android-Client zu ermöglichen, befindet sich in der App auch ein separater Server, mit welchem über einen eigenen Port ein Client in der Steuerungs-SW Kontakt aufnehmen kann. So kann beispielsweise spontan eine Störungsmeldung auf dem Handy ausgegeben werden (wenn die App läuft). Die SSH-Funktion möchte ich nur aus Bequemlichkeit hinzufügen (und aus der Lust des Anfängers heraus, neue Funktionen auszuprobieren). In der Anfangsphase des Einsatzes der Steuerungs-SW wird auch gleichzeitig die Mechanik getestet (Getriebemotore, Übertragung der Motorwellenbewegung auf die Tür), wobei es noch zu Störungen kommen kann, welche (noch) zum implementierten Beenden des Servers führen. Nach Behebung einer Störung kann vom Handy aus der Server vor Ort sofort wieder gestartet werden.
 
Ok die App ist nur für Dich oder Familie und läuft nur in deinem LAN.
Wird also nicht im Netz puplizirt werden.
Somit sind wenig Bedenken in der App einen Ssh Zugriff mit gespeicherten pw zu machen.

PS. solltest du die App und Pi Programm mal an andere weiter geben wollen. Würde ich den User Name und PW in der App am Anfang einmal erfragen und in den Shredprefs Speichen. Und dann benutzen.
 
Zuletzt bearbeitet:

Ähnliche Themen

M
  • maksimilian
Antworten
1
Aufrufe
1.505
jogimuc
J
M
  • maksimilian
Antworten
8
Aufrufe
1.274
jogimuc
J
Tiefkuehlpizza
Antworten
1
Aufrufe
865
Tiefkuehlpizza
Tiefkuehlpizza
Zurück
Oben Unten