2008-05-09

Children, iTunes and DRM



A couple of years ago I bought both of my daughters (pre-teen) MacBooks. Along with that I gave each of them a $10/month iTunes allowance.

At the time I didn't buy much stuff on iTunes myself because of DRM. That has changed now that DRM-less music is much more pervasive on iTunes. Still, for them it was a simple solution and I didn't want to expose them to the non-purchase alternatives.

Needless to say, they've done a great job of spending that allowance and filling up their 80gb disks with all kinds of music, movies and a lot of TV shows. It wasn't long before we had to start to delete some stuff off of their laptop to make room for more. So there was the dilema. I paid for this stuff, I don't want to just throw it away.

The solution I found was a rather simple and elegant one: Transmit

My MacPro has tons of disk space (4TB at the moment). They have logins on it as well.

I use a program called Transmit to synchronize their MacBooks with the MacPro (one way), and then they delete what they no longer want on their MacBooks. The beauty of this solution is that they still have access to everything, even from their MacBook via iTunes sharing from the MacPro.

The trick was to set up the SSH daemon on their MacBooks and use SCP as the transport within Transmit. First I turned on Remote Login under the Sharing tab in System Preferences on their MacBooks. However, I didn't want their laptops open to a password guessing attack (kids use simple passwords). So I set the following two options in the SSH daemon's configuration file (
/etc/sshd_config
):

PasswordAuthentication no
AllowUsers trancemist kid1 kid2



The first entry prevents passwords as being used to login to the system via the SSH protocol.
Only pre-authorized SSH keys are allowed.
The second line is a bit more security by only allowing specific users to login.

The last step was to generate an SSH key for each account on each laptop, and put the public key in the user's
~/ssh/authorized_keys
file.

When I want to sync (one way) their MacBooks to my MacPro, I just login as them, load the private SSH key into SSH Agent, and run Transmit's Synchronize feature as shown in the screenshot above. I pick their iTunes folders as the source (MacBook) and destination (MacPro) for the syncrhonisation. Transmit updates everything new from the MacBook to the MacPro.

The final step is to go into iTunes on the MacPro and select
File->Add to Library...
and point it at their iTunes Library. Now they have access to it all again.

I also run complete backups on their laptops to an external FireWire drive using SuperDuper!

0 comments: