3

Task to be accomplished:

  • Connect to a remote SSH server over an available network, and interact with the remote system over a text/command line connection

Requirements:

  • Runs on Android 4.4
  • Supports key-based host authentication to ensure I'm connecting to the host I think I am connecting to even when on a potentially untrusted network
  • Supports key-based user authentication so I don't have to give the password for my account on the remote system every time I connect
  • Can tell the remote system about the display size (rows x columns of text) so applications that look at this information to determine how much to draw on the screen look the way they are intended
  • Available from the Google Play store
  • Transmits each key press immediately (not line-buffered I/O on the client side)
  • Supports cursor key movement (sending up/down/left/right arrow keys presses) through some mechanism

Nice to have, in no particular order:

  • Supports connection profiles, so I don't have to configure each connection every time (lets me simply pick, say, host.example.com from a list and it populates fields like username, port, algorithm preferences or whatever else is available)
  • Passphrase protection for local secret keys
  • Ideally open source under some reasonably permissive license (BSD, GPL, MIT, Apache, ...)
  • Free of charge (but low cost is okay, too)
  • Ability to run a specific command upon connection to a remote host, with the specific command being configurable on a per-host basis
  • Selectable font size and standard colors
  • Ability to keep multiple connections to different hosts alive simultaneously

Not required:

  • Graphical interaction with the remote system (e.g. X11 forwarding)
  • Port forwarding through the SSH tunnel
  • Making the SSH connection available to any other applications or systems

Recommendations?

2

Favorite from my list of SSH Clients is JuiceSSH. Let's see how it meets your requirements:

  • Must haves:
    • Connect to a remote SSH server over an available network, and interact with the remote system over a text/command line connection: Sure, it's an SSH client :)
    • Runs on Android 4.4: Android 2.3 and up. I currently use it at 5.1
    • Supports key-based host authentication: Yepp, I use that.
    • Passphrase protection for local secret keys: Yes. You can call it "local key store": You have to put your password once before you can access stored keys. AFAIR that's once "per session" (i.e. you won't need to enter it twice for two connections, but will have to re-enter it when shutting down and restarting the app)
    • Ideally open source: AFAIK it's free (in its base version; "Pro Addon" is available), but not open-source. I cannot tell the "restrictions" of the free version, as I immediately got my pro upgrade :) But if interested, check the app's Playstore page which does list that. In essence, all I've listed here is available with the free version.
    • Free of charge: Yes. Though a low cost upgrade is available via IAP.
    • Ability to run a specific command upon connection:
    • Can tell the remote system about the display size: Not explicitly checked, but as all my terminal clients (e.g. Midnight Commander) scale correctly, I'd say yes.
    • Available from the Google Play store: Yes, see the link.
    • Transmits each key press immediately: I never felt any lag, so it should fit that.
    • Supports cursor key movement: Not tested, but cursor key data are only specific ANSI sequences – so it should work. Vaguely remember having done so once.
  • Nice to haves:
    • Supports connection profiles: Yes, definitely – I've setup my host connections that way.
    • Ability to run a specific command upon connection: Not checked, but it wouldn't surprise me :)
    • Selectable font size and standard colors: Looks like, at least partly (see screenshots below)
    • Ability to keep multiple connections to different hosts alive simultaneously: Yes, definitely.
  • Not asked for, but nice goodies:
    • Click URLs in your terminal windows, and they will open in your browser
    • Popup keyboard with all those normally hard to find characters (guess that was what I've used the cursor commands with)
    • Use the volume keys to quickly change font size
    • Easily organise your connections by group
    • Integrated key generator (to create new SSH keys)
    • Identities (users/password/keys) are abstracted from connections. Instead of updating every connection when you change your password - just update the identity and any connections linked to it will use the new password/key.
    • Homescreen widget to fast access most used connections

JuiceSSH JuiceSSH JuiceSSH JuiceSSH JuiceSSH JuiceSSH
JuiceSSH screenshots (source: Google Play; click images for larger variants)

Summing up, I'd say this is your ideal candidate: fits all your "must-have" requirements and even your nice-to-haves. As it's available for free, I'd suggest you go straight ahead to test it :)

  • Looks interesting. I think I'll give this one a try, thanks for the suggestion! – a CVn Oct 10 '16 at 11:25
0

My first thought is ConnectBot. It supports public key authentication, tunnels, adding hosts as in ~/.ssh/config, is free, open source, supports arrows with Hacker's Keyboard. I use it regularly.

And just for you to know, CyanogenMod comes ssh binary by deafult so you don't have to install anything.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.