instant-thinking.de

just enough to get you started and leave you confused

iTunes over SSH

| Kommentare

Ich hatte 2007 schon einmal einen Artikel mit dem selben Titel geschrieben und es ist seitdem nicht weniger praktisch geworden, von unterwegs auf das heimische iTunes zugreifen zu können.

Die gute Nachricht: Nach einem Kommentar von Yann aus dem Januar 2010, der mich auf einen Blogpost bei iharder.net hinwies, konnte das ganze Vorgehen noch ein wenig verschlankt werden und beschränkt sich nun auf ein sehr kleines Shellscript:

1
2
3
4
\#!/bin/sh
dns-sd -P "Home iTunes" _daap._tcp local 3689 localhost 127.0.0.1 "Arbitrary text record" & PID=$!
ssh -C -N -L 3689:127.0.0.1:3689 user@domain.de
kill $PID

Dank dem äusserst vielseitigen1 dns-sd Kommando, spart man sich den Betrieb des Network Beacons und erstellt die Bonjour-Annonce direkt im Script.

Im einzelnen:

Die erste Zeile weist den Interpreter /bin/sh als zuständig für das Script aus. No big deal.

Die zweite Zeile annonciert eine neue Proxy (-P) Bonjour-Ressource des Typs daap auf dem lokalen Port 3689 (Das ist quasi die Standard iTunes Netzwerk Konfiguration) auf dem lokalen Mac (localhost 127.0.0.1). Die entfernte Bibliothek kann genannt werden wie man mag, ich habe hier “Home iTunes” verwendet. Der “Arbitrary Text Record” wird nur aus syntaktischen Gründen benötigt. Dann wird noch die Prozessnummer des Kommandos in der Variable PID gespeichert.

In der nächsten Zeile wird dann der SSH-Tunnel gebaut. Die Option -C schaltet die Kompression ein, -N gibt keine interaktive Shell, sondern schickt den Tunnel in den Hintergrund. Nach -L wird der Tunnel definiert: Port 3689 lokal wird an Port 3689 auf der IP zwischen den Doppelpunkten weitergeleitet. Hier muss die IP des Computers eingesetzt werden, dessen iTunes aus der Ferne erreicht werden soll. Wenn iTunes- und SSH-Server auf der selben Maschine laufen, kann im Script auch die 127.0.0.1 für das Loopback-interface eintragen werden. Danach folgt nur noch der SSH-User und die dyndns oder sonstige Adresse.

Die letzte Zeile killt die Bonjour-Annonce wenn der Tunnel endet (z.B. wenn die IP wechselt während man verbunden ist).

In der Praxis und wenn alle Angaben stimmen, genügt dann die Ausführung des Scripts und die Eingabe des SSH-Passworts2 und man bekommt die heimische iTunes-Bibliothek angezeigt, als wäre man in seinem Heimnetz.

  1. und kaum dokumentierten

  2. Alternativ kann man natürlich auch SSH-Zertifikate für die passwortlose Anmeldung verwenden

Comments