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: 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 <<EOF >> ~/.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.