Android Setup

This guide walks you through installing RemoteConsoleSSH on your Android phone or tablet, configuring app security and permissions, and connecting to your first SSH server.

Requirements

  • Android device running Android 10 (API 29) or later
  • An SSH-enabled remote machine (see prerequisites)
  • Network connectivity to the remote machine (local Wi-Fi, VPN, or Tailscale)

Install the App

Download RemoteConsoleSSH from the Google Play Store. Search for "RemoteConsoleSSH" or use the direct link from the home page.

First Launch Setup

When you open the app for the first time, you will set up app-level security to protect your saved connections and credentials.

1

Set a PIN code

You will be prompted to create a numeric PIN. This PIN is required every time you open the app. It is hashed with SHA-256 before being stored, so even if device storage is compromised, your PIN cannot be read in plaintext.

2

Enable biometric authentication (optional)

After setting your PIN, the app asks if you want to enable fingerprint or face unlock. This is optional but recommended for convenience — it lets you bypass PIN entry using your device's biometric sensor.

ℹ️

Info

Biometric authentication requires that you have at least one fingerprint or face enrolled in your device's system settings. If no biometrics are configured, this option will be skipped.

3

Grant permissions

Android may prompt you to grant permissions during first use. The only permission requested upfront is:

  • Microphone — Required for voice control. You can skip this and grant it later when you first tap the microphone button.

No other special permissions are needed. File access for SFTP transfers uses Android's scoped storage and does not require broad file permissions.

4

You are on the home screen

You land on the connections screen, which is empty. Time to add your first server.

Add Your First Connection

1

Tap the "+" button

On the home screen, tap the floating action button to open the connection form.

2

Enter connection details

Fill in the following:

  • Name — A friendly label for this connection (e.g., "Home Server" or "Work Laptop").
  • Hostname or IP — The address of the remote machine. This can be an IP address like 192.168.1.100, a Tailscale hostname like my-macbook, or a domain name.
  • Port — The SSH port, defaulting to 22. Only change this if your server uses a custom port.
  • Username — Your user account on the remote machine.
3

Choose an authentication method

  • Password — Enter the password for your remote user account. It is stored in Android's EncryptedSharedPreferences, which uses the Android Keystore system for hardware-backed encryption.
  • SSH Key — Paste your private key into the text field, or tap the import button to pick a key file from your device. If your key has a passphrase, you will be prompted to enter it.
💡

Tip

SSH key authentication is the recommended approach. It is more secure than passwords and lets you connect without typing credentials each time. See the SSH key guide if you need to generate a key pair.

4

Save the connection

Tap Save. The connection now appears on your home screen.

Connect and Verify

1

Tap the connection

On the home screen, tap the server you just added.

2

Accept the host key (first connection only)

On your first connection to a server, the app shows the server's SSH host key fingerprint. Verify that it matches your server's actual key, then tap Accept. This fingerprint is stored locally so you will not be prompted again unless the server's key changes.

ℹ️

Info

If you see a host key warning on a server you have connected to before, it could mean the server was reinstalled or — in rare cases — that someone is intercepting the connection. Investigate before accepting a changed key.

3

You are connected

A terminal prompt appears. Verify the connection by running a command:

whoami && hostname

If tmux is installed on the remote machine, the app automatically creates or reattaches to a persistent session. You will see a tmux status bar at the bottom of the terminal output.

Android-Specific Features and Notes

Keyboard Toolbar

The Android keyboard includes a toolbar row above the software keyboard with terminal-specific keys that are not available on a standard Android keyboard:

  • Special keys: Esc, Tab, Ctrl, arrow keys
  • Symbols: |, /, ~, -
  • Microphone button: Activates voice control

Swipe the toolbar horizontally to access additional keys.

Voice Control

Tap the microphone icon in the keyboard toolbar to speak terminal commands. The app uses on-device speech recognition to transcribe your speech, then an AI model interprets it as a terminal command. For example:

  • "show me what is running" translates to ps aux
  • "go back two directories" translates to cd ../..
  • "find all Python files" translates to find . -name "*.py"
💡

Tip

Make sure to grant the microphone permission when prompted. If you previously denied it, go to Android Settings > Apps > RemoteConsoleSSH > Permissions > Microphone and set it to "Allow".

Voice control supports two modes: Command mode (interprets speech as terminal commands) and Text mode (types your speech as-is, useful for text editors or REPLs). Toggle between modes in the voice input overlay.

Reconnection Behavior

If your network connection drops (for example, when switching between Wi-Fi and mobile data), RemoteConsoleSSH automatically attempts to reconnect using exponential backoff — retrying at 2, 4, 8, 16, and 32 second intervals, up to 5 attempts.

If tmux is running on the server, the app reattaches to your existing session after reconnecting. Your terminal history, running processes, and working directory are all preserved.

💡

Tip

For the most reliable experience, install tmux on your server and use Tailscale for network connectivity. Tailscale maintains the connection even when switching between Wi-Fi and cellular.

Secure Storage

Connection credentials on Android are protected by EncryptedSharedPreferences backed by the Android Keystore. On devices with a hardware security module (most modern Android phones), encryption keys are stored in tamper-resistant hardware. Credentials are never written to disk in plaintext.

Display and Font

The terminal uses JetBrains Mono for clear character rendering, including full Unicode support. On high-DPI Android displays, the terminal automatically scales to a readable size. You can adjust the font size in Settings.

Troubleshooting

Connection times out

  • Confirm the remote machine's SSH server is running and accepting connections.
  • Check that your Android device can reach the server. If using Tailscale, verify both devices show as connected in the Tailscale app.
  • Ensure the port number is correct (default: 22). Some networks block non-standard ports.

Authentication fails

  • Verify your username, password, or SSH key.
  • For SSH keys, confirm the public key is present in ~/.ssh/authorized_keys on the remote machine.
  • Check file permissions: ~/.ssh should be 700 and authorized_keys should be 600.

Voice control does not work

  • Go to Android Settings > Apps > RemoteConsoleSSH > Permissions and verify microphone access is granted.
  • Ensure your device has a working internet connection for the AI interpretation step (speech recognition itself works on-device).

Terminal display issues

  • Run reset to clear the terminal state.
  • Check that the server's locale supports UTF-8 (locale should show en_US.UTF-8 or similar).
  • Adjust font size in the app's Settings if text is too small or too large.

What's Next