Howto: Per SSH auf Ubuntu Smartphone zugreifen

Herrlich, dass das Ubuntu Smartphone eine Shell hat und ich damit unter die Haube des Systems schauen kann. Einzig die Bedienung per Smartphone-Tastatur ist, sorry, pain-in-the-ass. Praktischer wäre es doch von meinem Laptop per SSH über das WLAN auf das Smartphone zugreifen zu können um bestimmte Arbeiten von einer echten Tastatur ausführen zu können. Ja, ich möchte eine Remote -Shell und das geht im Prinzip auch ganz simpel, denn der SSH-Daemon ist bei Ubuntu 14.10 bereits vorinstalliert, ist standardmäßig aber deaktiviert.

Etwas aufwendiger ist das Authentifizierungsverfahren: Weil für den Standard-User „phablet“ kein User-Login bzw. Passwort auf dem Smartphone angelegt ist und phablet ohne weiteres auch root-Rechte bekommt, wurde die sshd_config bereits für die Verwendung von RSA-Schlüsseln konfiguriert:

/etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys

Ich muss also einfach nur auf meinem Laptop einen solchen Schlüssel generieren, den öffentlichen Schlüssel auf das Smartphone kopieren und schon darf ich mich vom Laptop per SSH auf dem Smartphone einloggen. Dazu gehe ich wie folgt vor:

user@laptop:~$ mkdir .ssh/ # falls noch nicht vorhanden
user@laptop:~$ cd .ssh/
user@laptop:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.

Dann kopiere ich den öffentlichen Schlüssel id_rsa.pub per MTP auf das Smartphone, in meinem Fall in das Verzeichnis /Downloads/ „. Dann öffne ich auf dem Smartphone ein Shell-Terminal

phablet@ubuntu-phablet:~$ mkdir /home/phablet/.ssh
phablet@ubuntu-phablet:~$ mv Downloads/id_rsa.pub /home/phablet/.ssh/authorized_keys
phablet@ubuntu-phablet:~$ chmod 700 /home/phablet/.ssh
phablet@ubuntu-phablet:~$ chmod 600 /home/phablet/.ssh/authorized_keys

Damit habe ich nun theoretisch Zugriff vom Laptop auf das Smartphone per SSH. Theoretisch deswegen weil der ssh-Daemon auf dem Smartphone nicht standardmäßig startet. Das werde ich nun manuell machen:

phablet@ubuntu-phablet:~$ sudo service ssh start
ssh start/running, process 4676

Der ssh-Daemon ist gestartet, der Schlüssel ist bekannt gegeben, für eine erfolgreiche Verbindung muss ich nun nur noch die IP-Adresse des Smartphones im WLAN herausfinden:

phablet@ubuntu-phablet:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ifb0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether 3a:00:00:69:00:28 brd ff:ff:ff:ff:ff:ff
3...9:
10: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 4c:00:03:00:27:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.112/24 brd 192.168.2.255 scope global wlan0
inet6 fe80::0000:3ff:0000:25e0/64 scope link
valid_lft forever preferred_lft forever

Jetzt sollte ich mich einfach per SSH vom Laptop auf dem Smartphone einloggen können:

user@laptop:~/.ssh$ ssh phablet@192.168.2.112
Welcome to Ubuntu Utopic Unicorn (development branch) (GNU/Linux 3.4.67 armv7l)
* Documentation: https://help.ubuntu.com/
Last login: Sun Mar 29 10:50:43 2015 from 192.168.2.110
phablet@ubuntu-phablet:~$

Et voila – ich spreche per SSH mit der Shell meines Smartphones 🙂

Hinweis zur Sicherheit:
SSH ist kein Spaß, schon gar nicht auf einem System, dessen User-Login nicht mit einem Passwort abgesichert ist. Ich bin ziemlich paranoid was das betrifft und deswegen werde ich den ssh-Daemon nur manuell auf dem Smartphone starten.

Der ssh-Daemon lässt sicher aber natürlich auch so konfigurieren, dass er beim Booten des Smartphones automatisch gestartet wird. Dann läuft er allerdings IMMER – auch wenn man sich mit dem Smartphone in das öffentliche WLAN eines Supermarktes oder Fast-Food-Restaurants einloggt.

Die neusten Builds (getested mit 226, möglicherweise auch frühere) unterstützen eine Meta-Flag „persist.service.ssh“ um den SSH-Daemon beim Booten zu starten. Um den ssh-Daemon damit standardmäßig zu aktivieren muss man nur SSH starten und die Meta-Flag setzen:

sudo service ssh start
sudo setprop persist.service.ssh true

Das Smartphone anschließend rebooten und der ssh-Daemon sollte jetzt automatisch starten. Das lässt sich überprüfen mit

sudo service ssh status

Um das automatische Starten des ssh-Daemon wieder abzuschalten, ändert man die Meta-Flag entsprechend wieder:

sudo setprop persist.service.ssh false

Enjoy 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.