Transmit iOS and EC2
Panic Inc. has a well-deserved reputation for creating a very speedy, robust and easy-to-use ftp client app for the Mac. I have used the Transmit app for many years and it is everything a Mac app should be: intuitive, elegant, and fast.
Recently, Panic released an iOS version of Transmit that can be used on iPhones and iPads. This is a great thing for users that want to easily add content or edit a website while away from their primary ‘serious’ computer. As evidenced by some of my previous posts, I am now hosting my website on an Amazon EC2 instance, and getting sFTP service up and running can be a little bit of a twitchy process. The following is a very brief outline of the approach to take to enable the Transmit iOS app to access an Amazon EC2-based website.
What you will need
- A Dropbox account with the iOS app downloaded to the iOS device on which you are going to install Transmit iOS. Dropbox should be usable on both your OSX computer and your iOS device.
- The Transmit iOS app downloaded to your iOS device
- Your Amazon EC2 .pem file somewhere on your computer
- Optionally, a licensed copy of Transmit running on your OSX based Macintosh computer
First: optional Import Favorites from existing OSX Transmit version
This step is optional, but I assume that most users who are interested in downloading the Transmit iOS app will likely have the OSX version running on their computer.
Start the Transmit app, and click on Favorites->Export.. in the menu. You will be presented with an export dialog box. Create a folder in your Dropbox account and name it something like ‘EC2’, and then save the file TransmitFavorites.exportedFavorites to this folder.
On your iOS device, open the dropbox app and navigate to the file you just saved, and then tap the ‘upload’ icon, and a window will pop up with some options. Choose the Open in.. option: Another window will appear, and in this one, tap on the Transmit icon: The iOS device will then switch to Transmit, and here you will select the file that appears and then tap on the Import… selection: Transmit will then ask if you want to import Favorites, and then you should respond affirmatively.
Second: Add your EC2 .pem certificate to Transmit iOS
This is the part that feels a little more involved to me. Essentially, the .pem SSL certificate needs to be available inside the Transmit app. The approach recommended on the Panic website is to use iTunes to transfer this file to the ‘keys’ area of the app.
Using a USB connector, connect the iOS device to your computer (iTunes should be running). The iOS device should appear in iTunes. Click on the device name at the top of the iTunes app windows (iPad, iPhone or whatever), and then click on the Apps tab. Scroll down to the File Sharing section on the left-hand pane and locate the Transmit app. Select the Transmit app, and then click the Add.. button at the right hand bottom part of the right-side pane. Navigate to the .pem file and then import it into the Transmit app.
Third: Open Transmit iOS and configure sFTP access
Note: This assumes you have not imported your EC2 server setup in Step 1. If you have, skip down to step 3
- On your iOS device, open the Transmit app, and on the servers tab, tap the ‘+’ icon, and add a server setup. Select an SFTP server.
- Fill in all the information in the server setup. Give this ftp server a nickname, such as My EC2 Site or something equally as vacuous. The Address field will be your domain name such as yourdomain.com . Port 22 is the default sfTP port. Username should be EC2-user. The root path will be whatever you want. If you are primarily using this to upload content to your web server, then the path would be
/var/www/htmlif you have your site configured in a typical fashion. If the iOS app will be used for poking around on your server, for instance, editing unix configuration files, you may want to set the root path to
- Tap on the key icon and choose the .pem key imported above:
- Tap on Save and test your connection. If everything has been configured properly, it will connect to your server.