====== Eine SSH-Verbindung von Linux zu Android einrichten ====== Um sich von einem Linux-PC zu einem Android-Gerät via SSH zu verbinden, müssen die beiden Geräte im gleichen Netzwerk (z.B. dem Heimnetz) sein. In diesem Beitrag nehmen wir an, dass das gemeinsame Netz den IPv4-Adressbereich ''192.168.0.0/16'' hat. Einige Nutzerinnen und Nutzer wissen diese Anleitung sicherlich auch mit dem IPv6-Bereich ''fe80::'' zu bewältigen ;-) ===== Vorbereitung am Linux-PC ===== Zunächst sollte man ein ein langes und zufälliges Passwort für den Android-Benutzer generieren (Tipp: [[gnu_linux:anwendungen:keepassxc_kennwortverwaltung|KeePassXC]] verwenden). Dieses Passwort sendet man anschließend zur späteren Verwendung (z.B. via Messenger) an das Android-Gerät. Um die Anmeldung am SSH-Server mit einem sicherem SSH-Schlüssel (statt Passwort) zu ermöglichen, benötigt das Linux-PC-Benutzerkonto ein SSH-Schlüsselpaar. Falls noch kein SSH-Schlüsselpaar vorhanden ist, kann es z.B. mit folgendem Kommando erzeugt werden: ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 ===== Vorbereitung am Android-Gerät ===== Auf dem Android-Gerät installiert man zunächst die App "Termux" aus F-Droid oder dem Google Play Store. Anschließend sollte Termux gestartet und wie folgt eingerichtet werden: Den Benutzernamen in Termux ermitteln: whoami **Hinweis**: Der Benutzername kann z.B. ''u0_a123'' lauten und wird in diesem Beitrag nachfolgend als ''ANDROID_USER'' bezeichnet. Die lokale IPv4-Adresse des Android-Geräts ermittelt man mit folgender Kommandozeile: ip a | grep --only-matching 192.168.* | cut --delimiter "/" --field 1 **Hinweis**: Die lokale IPv4-Adresse wird in diesem Beitrag nachfolgend als ''ANDROID_IPv4'' bezeichnet Jetzt kann das zuvor generierte Passwort (s.o.) gesetzt werden: passwd Abschließend wird der SSH-Server installiert und gestartet: apt install --yes openssh-server && sshd ===== SSH-Schlüssel vom Linux-PC zum Android-Gerät übertragen ===== Um vom Benutzerkonto des Linux-PCs den öffentlichen SSH-Schlüssel an das Android-Gerät zu übertragen, kann folgende Kommandozeile verwendet werden: ssh-copy-id -p 8022 ANDROID_USER@ANDROID_IPv4 Wenn bis hierhin alles geklappt hat, sollte zunächst nach Aufforderung das Passwort des Android-Benutzerkontos eingefügt werden und anschließend die erfolgreiche Übertragung des öffentlichen SSH-Schlüssel bestätigt werden. Jetzt kann man sich mit folgendem Kommando zum Android-Gerät verbinden: ssh -p 8022 ANDROID_USER@ANDROID_IPv4 Man kann sich auf dem Linux-PC den SSH-Zugang durch einen Eintrag in der Datei ''~/.ssh.config'' erleichtern. Hierzu ein Beispiel: cat <> ~/.ssh/config ### Android-Gerät Host android Port 8022 User ANDROID_USER Hostname ANDROID_IPv4 IdentityFile ~/.ssh/id_ed25519 EOF Hat man dies so eingerichtet, reicht zur Anmeldung das einfache Kommando: ssh android ===== optional: Authentifizierung mittels Passwort deaktivieren ===== Zur Sicherheit sollte die Passwortanmeldung deaktiviert werden; die Authentifizierung erfolgt dann ausschließlich durch SSH-Schlüssel. Zuvor sollte man eine Sicherheitskopie der bestehenden Konfiguration erstellen: cp $PREFIX/etc/ssh/sshd_config $PREFIX/etc/ssh/sshd_config_$(date +%F_%R).bak Anschließend kann die Passwortanmeldung deaktiviert werden: sed --in-place '/PasswordAuthentication yes/s/PasswordAuthentication yes/PasswordAuthentication no/g' $PREFIX/etc/ssh/sshd_config Das war's! Noch ein Hinweis: Der Verbindungsaufbau ist nur bei entsperrtem Display möglich - danach bleibt die Verbindung jedoch auch bei gesperrtem Display bestehen. {{tag>SSH Linux Android Termux}}