When launched application shows screen with sessions.
Also it starts session service with notification.
Session service remains active until user "Exit" from application.
Each application screen uses action bar that displays activity title.
"Session" screen, as main application activity, uses action bar that shows "drawer" button for access to application navigation menu.
Other screens use "Up" navigation button to return to parent activity.
Application uses "toasts" to provide feedback about operation in a pop-up window usually located in bottom right part of screen.
For example a "toast" is shown when user switch between terminal screens.
Navigation menu is hidden by default.
It appear when is touched the drawer icon in the action bar on top of the "Session" screen.
Also it appear when user swipes a finger from the left edge of the screen.
Header of navigation menu contains application logo, title and e-mail address.
Tap on logo or title opens application web-site and
tap on e-mail address opens e-mail application.
Note that system my ask user to choose between existing
applications that support browse or mail functionality.
Content of navigation consist from following items:
This item starts "Connections" activity.
Activity manages list with predefined connections - create, update or delete.
It allows user to open a terminal screen with a secure shell session based on connection parameters.
Item is activated when user opens a terminal screen.
It is deactivated when all terminal screens are closed.
Each sub-item allows user easily to switch to respective terminal screen.
This item starts "Identities" activity.
Activity manages list with user identities (keys) used in public key authentication.
This item starts a new terminal screen with local console session.
This item starts "Known Hosts" activity.
Activity allows user to view and delete information for remote host keys used in connections.
Item starts "Settings" activity.
Activity allows user to set application preferences like
size of text displayed in terminal screen and etc.
Item is active only if all terminal session screens are closed.
Exit action first stops session service and respective notification and then closes application itself.
Notification message shows number of open sessions and allows user easily to switch to application.
Connections activity allows user to manage list of predefined connections.
at bottom right part of screen is used to define parameters of a new connection.
It starts activity "Connection Details".
Each connection is listed in separate card.
Card displays connection name (alias) and important parameters in secure shell "URI" format.
at top right part of card opens a popup-menu:
This item starts activity "Connection Details" to update parameters of connection.
Also it could be started if is performed click on card.
Item opens a new terminal screen and starts secure shell session using parameters specified by connection.
Also session is started if is performed long-click on card.
Associated action is to remove connection after confirmation.
Connection Details </>
Activity allows user define parameters of a connection identified by its alias.
Screen is separated in two input sections.
at bottom right part of screen view is used to save parameters of connection.
First input section is for basic parameters of secure shell URI of the form ssh://user@host[:port] :
- user: name to log in on remote machine.
- host: host name to log into as numeric IP address is also permitted.
- port: port number to connect on the remote host, by default 22.
Optionally also user could choose identity (public key) from list of existing or to create new one.
If identity is not specified only password based authentication will be tried.
Second input section of screen is used to defined additional parameters of connection.
Each parameter consist of keyword-argument pair.
"Empty"-parameter, i.e. parameter without argument cannot be used in secure shell session.
is used to expand section with expert (extra) parameters.
If expanded button
could be used to collapse section.
Note if connection is without extra parameters, and when section is expanded by default is added an "empty"-parameter!
User has either to delete or to define it.
Button Add line add new "empty"-parameter.
The parameter keyword is select from drop-down list.
Right to the list is button to delete parameter.
Entry box below keyword is used to enter argument of parameter.
Button Help at bottom end of section opens
manual page for consultation.
A new session is opened
either from "Connections" screen (secure shell)
or from "Navigation" menu (console).
Each session is displayed in separate terminal screen.
Terminal screen responds to tap(click) events and swipe gestures.
Single tap shows/hide "soft"-keyboard.
Single tap in top right part of screen shows "close" button.
Swipe from left part of screen opens "Navigation" menu.
Horizontal finger gesture "switch" between terminal screens.
Terminal screen supports context menu activated on long-click.
Session login </>
When a connection is performed for first time secure shell programs requires confirmation.
On session screen is printed information for remote host - type of the key and key fingerprint represented by its SHA256 hash value.
User has to confirm authenticity of remote host before session to continue.
Session terminates if user refuse to confirm.
Upon successful confirmation (user input is yes) information for remote host key
is stored in "Known Hosts".
After authenticity session continues with user authorization process.
Remark: on subsequent connections is used stored authenticity information and confirmation is not required.
Session exit </>
When remote (secure shell) or local (console) session exits, terminal screen remains active.
On screen is printed a separator line <<<<<>>>>>
followed by line with information about exist status (code) of session.
For instance if exit code is non-zero, by example 7, is printed message:
session finish with error: 7
In the same time in top right part of the screen is activated "close"-button.
It closes current terminal screen and activity is switched to next one.
Remark: Button could be activated at any time when user taps on top right part of screen.
If session is active taps outside hides button.
Session context menu </>
This menu appears when the user tap and hold (performs a long-click) on terminal screen.
It is as a floating list with following menu items:
With this item terminal screen enters in "clipbar" action mode
- Toggle Keyboard
Item show/hide soft-keyboard.
- Paste Script(pick)
Item activates action to select(pick) a file.
Content of file is pasted on command line.
- Send Function-key
Activates mode for input of "function" keys.
Similar to Vol-Up.
- Send Control-key
Activates mode for input of "control" keys.
Similar to Vol-Down.
- Help special keys
Displays screen with help information for "Function" and "Control" keys.
Remark: For more details see chapter special keys below.
Session clipbar </>
In "clipbar" action mode at the top of the screen is displayed contextual action bar.
Each action is represented by its icon.
Tap on icon activates it and long tap shows action label.
All these "clipbar" actions allow user to manipulate text on the screen:
- Select text
- Copy all
Back button ← exits screen from "clipbar" mode.
Session special keys </>
Device volume buttons ("Down" and "Up") change how terminal process key events.
These buttons allows user to enter "Control" and "Function" keys.
One button press changes mode and on screen is displayed "hint"-character: > for "Down" and < for "Up".
Then press of keyboard button enters special key according table below.
Two consecutive press of volume button "toggle" mode.
On screen is displayed filled "hint"-character: ▸ or ◂ respective.
Then each press of key enters a special character.
Next press of volume button stops "toggle" mode.
Table with all special keys:
|L ||| (pipe)
|U ||_ (underscore)
|E ||Control-[ (ESC)
Sample: four time enter of left arrow -
Vol-Down(enter "control" mode)
Vol-Down(toggle "control" mode)
Vol-Down(exit "control" mode).
Hint: map between keyboard "arrow"-keys and respective special keys:
↑ = Vol-Up+W
← = Vol-Up+A
→ = Vol-Up+D
↓ = Vol-Up+S
Session switch </>
Displayed terminal session screen could be changed
either from navigation menu "Sessions"
or with horizontal finger(swipe) gesture.
In latter case swipe gesture zoom out current screen and zoom in next one.
A short living message (toast) informs user for number of terminal screen.
Identities activity allows user to manage list with user private keys (identities).
Activity could be started either from navigation menu
or from activity "Connection Details"
when user choose item "<create>" from "Identity" list.
at bottom right part of screen is used to create a new identity.
It starts activity "Identity Details".
Each identity is listed in separate card.
Card displays identity name (alias) and information for identity type.
at top right part of card deletes identity after confirmation.
It is displayed only if identity is not used yet.
Below button, enclosed in braces, is displayed
number predefined connection that use identity.
Identity Details </>
Activity allows user to generate a new identity for use in secure shell public key authentication
or to display information for exising one.
For existing identities only name is modifiable if is not used in a connection.
Generation of new identity supports following key types: ECDSA, RSA(default), ED25519 or DSA.
For ECDSA and RSA identity user could choose strength of key.
In case of ECDSA strength is selected either from draggable thumb or
from list with supported curves: P-256, P-384 or P-521.
For RSA identity strength is selected either from draggable thumb or
from list with predefined bits of key: 2048, 3072(default), 3840, 4096, 6144, 7680 or 8192.
Button Import starts process "Import Identity".
at bottom right part of screen view is used to generate identity.
For security reasons empty passwords is not allowed.
It is required password to contain combination of upper and lower case letters,
and numbers, and punctuation marks with minimum length of 5 characters.
When pressed activity starts generation of private key.
Button disappear, modification of key attributes is disabled,
and until end of operation is displayed circular progress bar.
Key generation is time consuming operation.
After successful generation on screen is displayed
key fingerprint computed using SHA256 hash algorithm
and visual ASCII "art"-image representation.
Button Export starts activity "Export Identity".
Import Identity </>
When import is started from "Identity Details"
is displayed dialog with supported formats: PKCS#8, PKCS#12 or Legacy.
After confirmation is stated activity for selection of file containing identity
and then user is prompted for import password if necessary.
Remark: Third party application could "send" identity for import.
Export Identity </>
To use an identity in secure shell authentication process public part must be known on remote host.
The goal of activity is to prepare public part (key) in format recognizable by remote side (server).
Second step is to share (send) public key with responsible party using application selected by user.
Export supports following formats:
Extracted file is in text-format encoded as is specified by
"RFC 4716 (The Secure Shell (SSH) Public Key File Format)".
All secure shell implementations must support import from this format.
Extract is PKCS#8 format using PEM (text) representation.
Useful if remote end is able to process such format.
This format is more universal.
Some implementations may use it directly.
This is historic binary format that represent public key as base64 encoded blob (a specific ssh format).
Some implementations could import from this format.
Process starts when user tap button Extract
It finish with status message displayed at bottom right part of screen.
If extract process succeed is build list with possible applications
that could process extracted content.
On application bar is displayed share button
Tap on it opens applications list (device dependent).
If action is already used right to button is displayed
icon of application last used to share public key.
Usually e-mail applications send properly public key.
File management applications could be used to store it on SD-card.
Known Hosts </>
"Known Hosts" file contain identification (host public keys) entries
for all hosts that client has ever been used in sessions.
Information for remote hosts is managed per connection alias.
Each entry is displayed in separate card.
User could remove an entry when taps trash-can button at top-right part of the card.
After remove at bottom-right part of screen is displayed save button
To confirm removal user has to save modifications (tap button).
A short living message is displayed to confirm save.
Note returning back without to save ignores all pending changes.
Remark: client uses strict host key checking model with confirmation.
New entry is added automatically to the file only if user confirms authenticity of remote host
(see Session login for details).
On subsequent connections host identification is checked against stored entries.
If host key ever changes client refuses to connect.
In such case on terminal is printed warning message and
session exits with error code (see image at right).
Only after verification that host identification is changed
and knowing new identification
user could remove entry for respective connection.
On next connection user has to confirm new host authenticity.
Application settings allows user to define some screen preferences:
- Text size
Item allows user to choose height of characters displayed in terminal screens.
Height (font size) is expressed in points.
- Text color
Item allows user to choose color scheme for terminal screens.
Scheme defines color of terminal screen (background) and
color of characters (foreground).
This list includes well know schemes like
"Solarized Light", "Solarized Dark", "Dark Pastels", "Console" (default) and etc.
- Theme Mode
Item allows user to choose between Light and Dark theme mode.
Also "System" mode is supported on new devices (Android 9.0 or later) otherwise is equal to default mode - Light.
Session section add following:
- Console startup
Allows user to predefine start-up script of build-in shell.
Help section list following:
- User Guide
Item allows user to open this user guide.
Item displays application version.