Troubleshooting

This page covers common Mobile SSH issues and the first checks to run before changing server-side SSH settings.

Cannot connect

Check:

If the same host works from another device, compare the exact host, port, username, key, and network path.

Authentication failed

Check:

For encrypted private keys, enter the passphrase in the password/passphrase field.

Private key import failed

Private key import uses Android’s file picker. If import fails:

Keyboard input is delayed or changed

If your Android keyboard changes text before it reaches the shell, disable keyboard suggestions in Mobile SSH settings. This is useful for Vim, tmux, htop, less, shells using unusual key chords, and remote password prompts.

Use the extra key row for terminal keys such as ESC, TAB, CTRL, arrows, HOME, END, PGUP, and PGDN.

tmux scrolling is not what you expect

Mobile SSH changes scroll behavior based on terminal state. In tmux or other alternate-screen programs, scroll gestures may send tmux copy-mode commands rather than scrolling local history. If tmux mouse mode is enabled, the app sends mouse-wheel escape sequences.

If scrolling feels wrong:

Session dropped after screen lock

Mobile SSH uses keepalives, a foreground service, wake lock, Wi-Fi lock, and reconnect attempts to reduce disconnects. Android battery policies can still stop background work.

Check:

File transfer cannot browse phone files

On newer Android versions, local file browsing may require storage access. Grant storage access in Android Settings for Mobile SSH, then reopen the file transfer screen.

If remote files load but local files do not, the SSH connection is probably fine and the issue is local Android storage access.

Upload or download failed

Check:

Port forward failed

Check:

Debug logs

The start screen includes a Debug button. When enabled, Mobile SSH records diagnostic information for terminal events, SSH data sizes, touch input, resize behavior, and tunnel lifecycle. Stop recording to save a debug archive locally.

Review debug archives before sharing them. They are intended for troubleshooting and may reveal server names, timing, terminal behavior, or other environment details.