Connecting your android phone to Transdroid securly

How to tunnel from your Android phone, to your Ubuntu Desktop, and control the Transmission BitTorrent client. Securely.

First thing first, Download ConnectBot and TransDroid on your Android device.

Now, as to your desktop computer:

  • If you have a dynamic ip (probably, you do), you need to configure a Dynamic DNS service, and get a hostname for your computer. I use DynDns, and the ddclient daemon to automatically update it.
  • If you are behind a NAT, you need to configure port forwarding. I tried using a utility do to that automatically , but eventually, just configured my router...

Key based authentication

Another thing to consider, is using Key based authentication. Because I don't want to remember a long password, I use public-private keys to authenticate. To do this, create a key pair in ConnectBot. Then copy the public key to the end of the ~/.ssh/authorized_keys file (created it if it does not exists).

If you are extra paranoid, make sure to password protect your keys, when you create them in ConnectBot. If you don't do this, and your phone would fall into the hands of a stranger, your phone can be used to access your computer without a password.

Also, you probably want to disable password authentication, incase you have a weak password. to do this, add the following lines to "/etc/ssh/sshd_config":

ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no

Now we're extra secure, as no one can login using password guessing.

Create a connection to your computer using ConnectBot. The host is the dynamic-dns host, or your computer's IP if you have a fixed IP. If everything is configured well, the connection will succeed, and you will see a live shell.

Final configuration

Ok, now, on Transmission (bit torrent client), enable the web interface. Also, configure 127.0.0.1 as the ips allowed to connect. This is an extra security measure, incase your computer will wonder to a public network.

Configure port forwarding in connect bot: Create a local port forward from port 9091 to localhost, port 9091. This will forward the port 9091 from your android device, to port 9091 on your remote computer.

Finally, configure TransDroid, to use Transmission. the server is 127.0.0.1 (localhost).

To make everything work, first activate the connection in ConnectBot. As long as the connection is active, you'll have a tunnel to your computer, and you should see your torrent list in TransDroid (of course, Transmission must be running on your computer).