Android · GPL-3.0 · 1.1.23

KonsoleSSH

Terminal SSH multi-onglets pour Android — inspiré de KDE Konsole.

Onglets indépendants, chacun avec sa propre session SSH. Jump host, transfert SFTP, profils de connexion chiffrés, connexions gérées par foreground service, émulateur VT100 / xterm-256color basé sur Canvas. L'application n'envoie rien à la maison : les identifiants restent sur l'appareil.

Icône de l'application KonsoleSSH

Ce qu'il fait

On trouve une foule de clients SSH sur le Play Store, mais peu sont vraiment faits pour travailler. KonsoleSSH transpose la logique des terminaux de bureau au téléphone, au lieu d'imposer le schéma des applications mobiles à SSH.

Bascule entre onglets par swipe — pas besoin d'ouvrir un menu, un glissement du doigt suffit pour passer au shell d'un autre serveur. Chaque onglet porte un petit voyant d'état : pastille verte si connecté, jaune lors de la connexion, rouge si déconnecté. Un coup d'œil suffit pour repérer la session en panne.

Quand une connexion saute — parce que le Wi-Fi a changé, le téléphone est passé en données mobiles ou le jump host a expiré —, l'onglet ne se ferme pas tout seul : un bouton ↺ apparaît au centre, et une seule pression rétablit la connexion au même hôte avec le même profil. Le tampon de sortie est rejoué, on voit ainsi ce qui s'est passé avant.

La barre de touches à l'écran propose des combinaisons intégrées — exactement celles que tmux apprécie : Ctrl, Alt, Shift, AltGr en modificateurs sticky, une rangée dédiée aux combos Ctrl (Ctrl+A, Ctrl+B, Ctrl+C, Ctrl+D, Ctrl+V, Ctrl+Z), une rangée de flèches et une rangée F1–F12 — tout ce dont on a besoin après le préfixe tmux ou pour basculer de fenêtre. vi et htop redonnent l'image proprement via le tampon alt-screen, et le jump host fonctionne même quand la cible est sur un réseau privé.

Fonctions principales

Interface multi-onglets

Sessions SSH indépendantes par onglet, avec ViewPager2. Pastille d'état de connexion (vert / jaune / rouge) sur chaque onglet, renommage par appui long, confirmation de fermeture en cours de connexion.

Prise en charge des jump hosts

Passerelle sélectionnable parmi les connexions enregistrées, avec port-forwarding local. À la détection d'une plage d'adresses interne (10. / 172. / 192.), la section jump s'ouvre automatiquement dans la boîte de dialogue de nouvelle connexion.

Profils chiffrés

Les connexions enregistrées sont stockées via EncryptedSharedPreferences d'AndroidX Security : AES-256-GCM pour les valeurs, AES-256-SIV pour les clés, avec MasterKey adossée à Android Keystore.

Transfert de fichiers SFTP

L'icône dossier de la barre de touches ouvre un sélecteur de fichiers, le transfert est suivi avec une barre de progression. Après un envoi réussi, un bouton Annuler apparaît dans le toast — une pression efface le fichier distant.

Émulateur basé sur Canvas

TerminalView maison : 256 couleurs + truecolor, gras, souligné, inverse, scroll region, alt-screen (vi, top, less, mc), mode curseur app DECCKM, bracketed paste. NerdFont intégrée, scrollback de 3000 lignes.

Service en arrière-plan

Les sessions appartiennent au SshForegroundService, pas au fragment. Les connexions survivent au redémarrage de l'activity, à la rotation et au task removal. Le tampon de sortie (256 Ko / session) est rejoué quand le fragment se lie.

Barre de touches à l'écran

Modificateurs sticky Ctrl, Shift, Alt, AltGr. Rangée Fn dépliable (F1–F12), rangée de flèches, rangée dédiée aux combos Ctrl (A/B/C/D/V/Z). Prise en charge complète du clavier matériel avec respect du mode curseur app.

Presse-papiers

Sélection de texte par appui long avec ActionMode flottant (Copier / Coller). Presse-papiers interne séparé pour Ctrl+C / Ctrl+V, afin de ne pas se mêler à celui du système.

Aide-mémoires

Récapitulatif Linux et tmux intégré. Contenu localisé en anglais et hongrois, pas de simples libellés traduits. Commandes destructrices (dd, sed -i) signalées par un avertissement.

Arbre des connexions

Les profils enregistrés se regroupent automatiquement selon les préfixes en underscore : acme_prod_web, acme_prod_dbacme_prod_. Une feuille isolée n'est pas regroupée.

7 langues

Anglais (par défaut), hongrois, allemand, espagnol, français, slovaque, roumain. Suit la langue du système ; la mise en page est prête pour le RTL.

Confidentialité

Aucune collecte, aucune télémétrie. Les identifiants ne quittent pas l'appareil. Le code source est public sous GPL-3.0 — vérifiable.

Captures d'écran

Cliquez sur une image pour l'agrandir — un nouveau clic la ferme.

Écran d'accueil de KonsoleSSH — bannière en couleurs ANSI et texte d'introduction
Écran d'accueil
Boîte de dialogue de nouvelle connexion SSH — hôte, port, utilisateur, sélecteur d'authentification
Nouvelle connexion SSH
Aide-mémoire tmux — commandes session, window, pane
Aide-mémoire tmux
Aide-mémoire Linux — commandes top, df, du, grep, awk, sed
Aide-mémoire Linux
Écran d'accueil agrandi Boîte de dialogue de nouvelle connexion SSH agrandie Aide-mémoire tmux agrandi Aide-mémoire Linux agrandi

Caractéristiques techniques

Paquet
hu.billman.konsolessh
Version actuelle
1.1.23
Android minimum
8.0 (API 26)
Android cible
15 (API 35)
Bibliothèque SSH
JSch — mwiede fork, 0.2.16
Authentification
mot de passe · clé privée (PEM, passphrase) · keyboard-interactive
Stockage des profils
EncryptedSharedPreferences (AES-256, Android Keystore)
Terminal
VT100 / xterm-256color · 256 couleurs + truecolor
Scrollback
3000 lignes · tampon de sortie 256 Ko / session
Licence
GPL-3.0-or-later

Nous cherchons des testeurs

L'application est actuellement en test fermé sur le Google Play Store. Le programme d'installation n'est téléchargeable que par les testeurs enregistrés — le lien Play Store ne fonctionne qu'avec les adresses e-mail inscrites.

Si vous souhaitez l'essayer et nous faire un retour, postulez via le formulaire de contact — il est important d'indiquer l'adresse e-mail avec laquelle vous vous connectez à Google Play Store, car l'accès testeur sera lié à ce compte. Sous quelques jours, nous vous ajoutons à la liste des testeurs, après quoi le téléchargement devient disponible.