From iPhone Development Wiki
Jump to: navigation, search

Languages: English • françaisไทย


SSH over USB using usbmuxd

You can either download a binary and run that or use a python script. The python script is a lot slower than the binary version. On Linux the python method is mostly deprecated, use the binary version provided by libimobiledevice

Using binary

  • Download the zip file from OS X or Windows (32 bits).
  • on Linux usbmux is provided by libimobiledevice, install it using your distro's package manager.
  • If you're on Windows, install iTunes
  • Unzip to a directory of choice.
    • Windows: Run path/to/itunnel_mux.exe --iport 22 --lport 2222
    • OS X: Run sudo path/to/itnl --iport 22 --lport 2222
    • Linux: iproxy 2222 22

Connect to localhost as you would over wifi.

Making itunnel mux run automatically in the background on OS X

  • Save the unzipped folder (containing both itnl and libmd.dylib) somewhere (eg. /Library/itunnel)
  • Create the file /Library/LaunchDaemons/com.usbmux.itunnel.plist with the contents:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "">
<plist version="1.0">
  • (replacing /path/to/ with the path to where you have itnl stored, eg. /Library/itunnel/)
  • run sudo launchctl load /Library/LaunchDaemons/com.usbmux.itunnel.plist
  • You now don't have to run the itunnel binary every time you want to SSH over USB as the itunnel software is always running in the background

Using python

Tested on OS X and Windows.

You will need to have Python installed on your system.

  • Get usbmuxd source package and unpack. (Or if the linked usbmuxd package doesn't work, try libusbmuxd.)
  • Go into folder python-client
  • chmod +x
  • Run ./ -t 22:2222

Now you can log into your device via ssh mobile@localhost -p 2222

The -t switch tells tcprelay to run threaded and allow more than one ssh over the same port.

See ./ --help for further options.

SSH over USB using the iFunBox GUI (Windows only)

This feature only exists in the Windows build of iFunBox.

  • Get the latest Windows build of iFunBox and install it.
  • Click on "Quick Toolbox," then "USB Tunnel."
  • Assign ports as you see fit.

Theos usage

Export the following variables in your shell in order to deploy builds to the connected device:

export THEOS_DEVICE_IP=localhost


SSH without password

Run the following command one time and you will not be asked to type your password again.

ssh-copy-id root@DEVICE_IP