Hello, Guest the thread was viewed305 times and contains 2 replies

last post from treki at the

Howto: Terminal & SSH auf Android Gerät installieren

  • Post by treki ().

    This post was deleted by Dcobain: Auf Wunsch des TE gelöscht ().
  • 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:


    Code
    1. pkg update
    2. pkg upgrade
    3. pkg install openssh # SSH Server installieren
    4. sshd # SSH Dienst starten
    5. pkg install whoami # whoami installieren
    6. whoami # Resultierende Ausgabe ist der Username (Bsp: u0_a155)
    7. passwd # Passwort vergeben


    Autostart für SSH setzen:


    Code
    1. mkdir -p ~/.termux/boot
    2. nano ~/.termux/boot/start-sshd.sh


    start-sshd.sh mit folgendem Inhalt:


    Code
    1. #!/data/data/com.termux/files/usr/bin/bash
    2. termux-wake-lock # Verhindert, dass das Gerät in den Tiefschlaf geht
    3. sshd # Startet den SSH-Dienst


    Option: Standard Port 8022 ändern:


    Code
    1. nano ~/.ssh/config
    2. Port 22 # eintragen um Port auf 22 zu ä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.


    Code
    1. ssh-keygen # Auf PC SSH Schlüssel generieren
    2. ssh-copy-id -p 8022 u0_a155@192.168.1.x # Kopiere den öffentlichen Schlüssel nach Termux
    3. ssh u0_a155@192.168.1.x -p 8022 # Melde dich nun ohne Passwort an. Natürlich kannst auch Putty 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.


    Code
    1. pkg install mpv


    Code
    1. nano /data/data/com.termux/files/home/ping-check.sh


    Folgenden Inhalt da reinschreiben



    Code
    1. chmod 744 /data/data/com.termux/files/home/ping-check.sh


    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.sh


    Alert mp3:
    /data/data/com.termux/files/home/alert.mp3

    alert.mp3


    Nun noch den Autostart konfigurieren:


    Code
    1. nano ~/.termux/boot/start-sshd.sh


    Folgenden Inhalt da reinschreiben


    Code
    1. #!/data/data/com.termux/files/usr/bin/bash
    2. termux-wake-lock # Verhindert den Tiefschlaf
    3. sshd # Startet den SSH-Dienst
    4. # Starte das Ping-Check-Skript, falls es nicht bereits läuft
    5. if ! pgrep -f "/data/data/com.termux/files/home/ping-check.sh" >/dev/null 2>&1; then
    6. nohup sh /data/data/com.termux/files/home/ping-check.sh >/dev/null 2>&1 &
    7. fi


    Zum testen könnt ihr im Script eine nicht erreichbare IP eintragen und von Hand starten:


    Code
    1. sh /data/data/com.termux/files/home/ping-check.sh
  • 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

    Code: $PREFIX/etc/ssh/sshd_config
    1. PasswordAuthentication no

    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.