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?