Howto: Terminal & SSH auf Android Gerät installieren
- treki
- Thread is Unresolved
-
-
Kann leider meinen ersten Post nicht mehr editieren. Es hat ein paar Änderungen gegeben, weil nicht mehr alles startete nach einem Reboot.
Wie eine SSH Verbindung und ein (Linux) Terminal auf einen Androiden bringen?
Hier ein kleines Tutorial.
Ich empfehle Termux und benutze das hier auch.-----------------------------------------------------------
Als Erstes F-Droid Store installieren. Nehmt die aktuelle Version vom F-Droid Store https://f-droid.org/F-Droid.apk , weil GooglePlay meistens nur ältere Versionen anbietet.
Installiert dann Termux und Termux:Boot aus dem F-Droid Store.
Anschliessend in der Termux Konsole auf dem Android Gerät eingeben:Autostart für SSH setzen:
start-sshd.sh mit folgendem Inhalt:
Option: Standard Port 8022 ändern:
Option: Passwortlose Anmeldung mit SSH-Schlüsseln:
192.168.1.x ist die IP eures Android Gerätes. Ich empfehle DHCP da auszuschalten und eine statische IP zu verwenden.-----------------------------------------------------------
Hier ein Beispiel. Dieses Script pingt den ioBroker-Server jede Minute an.
Wenn dieser keine Antwort gibt, gibt das Panel/Tablett einen Alert-Ton aus und versendet eine Telegram Nachricht.Folgenden Inhalt da reinschreiben
Code- #!/data/data/com.termux/files/usr/bin/bash
- # Telegram Bot Token und Chat ID
- TELEGRAM_TOKEN="DeineToken"
- CHAT_ID="DeineChatID"
- PING_IP="192.168.1.x" # IP-Adresse vom iob-Server
- MESSAGE="ioBroker Server antwortet nicht."
- # Intervall in Sekunden
- INTERVAL=60
- # Endlosschleife
- while true; do
- # Führe 4 Pings aus (-c 4) und prüfe, ob keiner erfolgreich ist
- if ! ping -c 4 $PING_IP > /dev/null 2>&1; then
- # Ton abspielen
- /data/data/com.termux/files/usr/bin/mpv /data/data/com.termux/files/home/alert.mp3
- # Telegram Nachricht senden
- curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_TOKEN/sendMessage" \
- -d "chat_id=$CHAT_ID" \
- -d "text=$MESSAGE"
- fi
- # Wartezeit bis zum nächsten Versuch
- sleep $INTERVAL
- done
Gespeichert habe ich das im Verzeichnis (dank SSH kann man nun auch Filezilla mit SFTP verwenden):
Script:
/data/data/com.termux/files/home/ping-check.shAlert mp3:
/data/data/com.termux/files/home/alert.mp3Nun noch den Autostart konfigurieren:
Folgenden Inhalt da reinschreiben
Code- #!/data/data/com.termux/files/usr/bin/bash
- termux-wake-lock # Verhindert den Tiefschlaf
- sshd # Startet den SSH-Dienst
- # Starte das Ping-Check-Skript, falls es nicht bereits läuft
- if ! pgrep -f "/data/data/com.termux/files/home/ping-check.sh" >/dev/null 2>&1; then
- nohup sh /data/data/com.termux/files/home/ping-check.sh >/dev/null 2>&1 &
- fi
Zum testen könnt ihr im Script eine nicht erreichbare IP eintragen und von Hand starten:
-
Ich nutze auch termux dazu, aber explizit ohne Auto-Start! D.h., ich starte es "per Hand" ("sshd"), wenn ich mal drauf will (und in einer geschützten Umgebung bin, z.B. zu Hause), und beende es, sobald ich fertig bin ("pkill sshd"). Ein dauerhaft aktiver offener ssh-Server ist mir dann doch etwas zu viel des guten auf meinem Handy.
Darüber hinaus musst du den user (bei dir "u0_a155") gar nicht angeben, weil vom termux-openssh-Server jeder akzeptiert wird.
Ich würde auch dringend die Anmeldung via Password abschalten:
vim $PREFIX/etc/ssh/sshd_config
dann
setzen, nachdem der Public key abgelegt ist.
Oder, noch besser, eine Datei in $PREFIX/etc/ssh/sshd_config.d/ ablegen mit einem Namen *.config und dem Inhalt, dann kannst du die obige Datei unverändert lassen und deine Einstellungen stattdessen dort vornehmen.
Bist du sicher, dass du den Port von 8022 auf 22 in ~/.ssh/config änderst? Diese Datei wird normalerweise benutzt, wenn du ssh *von* dem Rechner aus nutzt. Für den Server musst du wohl eher $PREFIX/etc/ssh/sshd_config anfassen.
Ich würde auch unbedingt empfehlen, das hier: https://wiki.termux.com/wiki/Remote_Access durchzulesen bevor man sein Handy einfach so öffnet.
-
Wie gesagt ist das Tutorial für ioBroker gedacht.
Das sind dann Panels, welche zu Hause fest montiert sind.
Die sind auch nur im Heimnetz.
Den Port zu ändern ist ja nur eine Option und ein Beispiel.