Skip to content

An Android 'sshd' server with shell access, rsync and scp/sftp services.

License

Notifications You must be signed in to change notification settings

tfonteyn/Sshd4a

Repository files navigation

Provides an 'sshd' server with shell access, rsync and scp/sftp services.

Some documentation can be found on the wiki

Download the latest release: 1.4.0

Get it on GitHub Get it on IzzySoft

Services:

Services are provided by:

The latest release contains:

  • Dropbear 2024.86
  • rsync 3.3.0
  • sftp-server from OpenSSH 9.9p1

Rsync support:

For those who are unclear about how rsync works, a brief and very simple description can be found on wikipedia:

rsync will use SSH to connect as user to remote-host.[14] Once connected,
it will invoke the remote host's rsync and then the two programs will
determine what parts of the local file need to be transferred so that
the remote file matches the local one.

More details can be found on how-rsync-works

To be explicitly clear: there is no rsync daemon started!

User Interface languages:

Available in Chinese, English, French and German.

Translations are editable on Weblate

  • Pull-requests with translations are also welcome.
  • Contact me by logging an issue if you want to provide translations in another way.
  • Please log a GitHub issue if you want to be credited by name (instead of github alias) with your help.
Translation status

Device support:

  • Requires minimal Android 11 (API 30)
  • Supported/tested up to Android 15 (API 35).

Android Permissions:

  • android.permission.POST_NOTIFICATIONS
  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_SPECIAL_USE

These are standard permissions required by Android to be able to run sshd as a service. It will allow the service to keep running, while you switch to other apps.

  • android.permission.RECEIVE_BOOT_COMPLETED

Another standard permission which is needed to be able to start the service at device boot. You can enable/disable this in the app settings.

  • android.permission.MANAGE_EXTERNAL_STORAGE

You will be requested to grant this permission. It is needed to be able to effectively use the "rsync" and "sftp" commands. Without it, you would only be able to access the app's embedded "files" directory.

As rsync is of course a means to make a private backup/sync of the files on your device, there is a need to give the app special permission to access all files.

This must be (and is) explicitly requested when the app is run, and involves you to open the device settings and manually give this permission. The app can only prompt you for this, and you must do this manually. You can of course deny/ignore this request if accessing the app embedded "files" directory is enough for your needs.

Permission request All files access - app list All files access - allow for Sshd4a

More info on MANAGE_EXTERNAL_STORAGE can be found in this Android doc article and in this Google article in the section "All Files Access Permission"

Thanks