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 ;-)

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

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

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

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.

  • eine_ssh-verbindung_von_linux_zu_android_einrichten.txt
  • Zuletzt geändert: 31.07.2023
  • von 127.0.0.1