, 3 min read

ssh and rsync for Android

I got somewhat tired of using FTP with my Android, even with lftp. Keeping multiple folders in sync is simply very cumbersome. If I only had rsync working on Android! I found SSHelper, written by Paul Lutus, see also Arachnoid.

SSHelper offers ssh, scp, rsync. You can ssh to your Android phone and issue commands like vi, ls, top, uptime, etc.

Put your public key into .ssh/authorized_keys on the smartphone then you can log-on without being prompted any password. This is very convenient.

Sample screenshot is given below.

SSHelper SSHelper

Running top on a Nexus 4 looks like this:

Mem: 1524664K used, 391008K free, 0K shrd, 69980K buff, 869424K cached
CPU0:  3.8% usr  7.4% sys  0.9% nic 87.7% idle  0.0% io  0.0% irq  0.0% sirq
CPU1:  0.0% usr  0.0% sys  0.0% nic  0.0% idle  0.0% io  0.0% irq  0.0% sirq
CPU2:  0.0% usr  0.0% sys  0.0% nic  0.0% idle  0.0% io  0.0% irq  0.0% sirq
CPU3:  0.0% usr  0.0% sys  0.0% nic  0.0% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 0.70 1.44 5.39 2/1029 29712
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
  517   172 1000     S     943m 50.2   0  2.2 system_server
 6397   172 10052    S     915m 48.8   0  1.9 {droid.apps.plus} com.google.android.apps.plus
29709 29707 10019    R N   2260  0.1   0  1.6 top
26025   172 10019    S     870m 46.4   0  1.1 {chnoid.sshelper} com.arachnoid.sshelper
  625   172 10057    S     854m 45.5   0  1.1 {ndroid.systemui} com.android.systemui
  194     1 9999     S    10444  0.5   0  0.8 /system/bin/sensors.qcom
  183     1 0        S <   6204  0.3   0  0.8 /system/bin/mpdecision --no_sleep --avg_comp
  171     1 1000     S    66016  3.4   0  0.5 {Binder_2} /system/bin/surfaceflinger
22578     2 0        SW       0  0.0   0  0.5 [kworker/0:4]
29699 26055 10019    S N   1276  0.0   0  0.2 /data/data/com.arachnoid.sshelper/utilities/dropbear -p 2222 -P /data/data/com.arachnoid.sshelper/utilities/dro
  617     2 0        SW       0  0.0   0  0.2 [TX_Thread]
  618     2 0        SW       0  0.0   0  0.2 [RX_Thread]
   25     2 0        SW       0  0.0   0  0.2 [khubd]
29270     2 0        SW       0  0.0   0  0.2 [kworker/u:15]
 8665   172 10060    S     958m 51.1   0  0.0 {equicksearchbox} com.google.android.googlequicksearchbox
25418   172 10010    S <   945m 50.4   0  0.0 {.android.chrome} com.android.chrome
  760   172 10023    S     889m 47.4   0  0.0 {rocess.location} com.google.process.location
26154   172 10023    S     879m 46.9   0  0.0 {gle.android.gms} com.google.android.gms
24529   172 10016    S     876m 46.7   0  0.0 {e.android.email} com.google.android.email
  805   172 10035    S     870m 46.4   0  0.0 {ndroid.launcher} com.android.launcher
  856   172 10023    S     868m 46.3   0  0.0 {e.process.gapps} com.google.process.gapps
28886   172 10042    S     843m 44.9   0  0.0 {roid.music:main} com.google.android.music:main
28808   172 10050    S     842m 44.9   0  0.0 {android.vending} com.android.vending
28783   172 10073    S     840m 44.8   0  0.0 com.whatsapp
  780   172 1001     S     838m 44.6   0  0.0 {m.android.phone} com.android.phone
26057   172 10029    S     836m 44.6   0  0.0 {gle.android.tts} com.google.android.tts
  789   172 1027     S     836m 44.5   0  0.0 com.android.nfc
28476   172 10057    S     836m 44.5   0  0.0 {emui:screenshot} com.android.systemui:screenshot
26136   172 10022    S     836m 44.5   0  0.0 {ogle.android.gm} com.google.android.gm
 1315   172 10017    S     833m 44.4   0  0.0 {ndroid.exchange} com.google.android.exchange
23488   172 10000    S     831m 44.3   0  0.0 {d.process.acore} android.process.acore
24771   172 10023    S     831m 44.3   0  0.0 {droid.gsf.login} com.google.android.gsf.login
24653   172 10089    S     826m 44.0   0  0.0 {m.concur.breeze} com.concur.breeze
28638   172 10006    S     824m 43.9   0  0.0 {ndroid.calendar} com.google.android.calendar
27149   172 10051    S     823m 43.9   0  0.0 {d.maps.mytracks} com.google.android.maps.mytracks
27084   172 1000     S     823m 43.8   0  0.0 {ndroid.settings} com.android.settings
  743   172 10034    S     821m 43.8   1  0.0 {putmethod.latin} com.google.android.inputmethod.latin
  844   172 1027     S     818m 43.6   0  0.0 {id.nfc:handover} com.android.nfc:handover
28618   172 10007    S     818m 43.6   0  0.0 {viders.calendar} com.android.providers.calendar
25175   172 10082    S     818m 43.6   0  0.0 {baggus.barometr} pl.baggus.barometr
26232   172 10015    S     818m 43.6   0  0.0 {d.process.media} android.process.media
  172     1 0        S     808m 43.1   0  0.0 zygote /bin/app_process -Xzygote /system/bin --zygote --start-system-server
  174     1 1013     S    45784  2.3   0  0.0 /system/bin/mediaserver
  182     1 0        S <  20848  1.0   0  0.0 /system/bin/thermald

Added 28-Oct-2013: The recent update to version 2.3 of SSHelper unfortunately is completely broken. It doesn't start, no shell. I wished I had not updated. You probably have read this more than once in this blog: Newer is not better.

Added 05-Nov-2013: SSHelper is running again. Important notice from www.arachnoid.com: users must fully uninstall, then reinstall SSHelper.

Added 02-Mar-2020: I am no longer using SSHelper. I now use Termux instead. See ssh and rsync for Android, Termux.