// AJOUTER UN HÔTE

Appuyez sur le bouton + dans l'écran des hôtes pour ajouter un nouveau serveur.

Champs obligatoires

  • Hostname / IP — l'adresse ou l'IP du serveur. IPv4 et IPv6 sont tous deux pris en charge.
  • Port — par défaut 22. Modifiez-le si votre serveur utilise un port SSH différent.
  • Nom d'utilisateur — l'utilisateur Unix avec lequel vous souhaitez vous connecter (ex. ubuntu, root, deploy).
  • Authentification — choisissez entre mot de passe ou clé SSH (recommandé).

Vérification de l'empreinte de l'hôte

Lors de la première connexion, SSHBorg affiche l'empreinte du serveur et vous demande de l'accepter. C'est une vérification de sécurité : elle garantit que vous vous connectez à la bonne machine et non à un imposteur. Vérifiez que l'empreinte correspond à celle fournie par votre administrateur avant d'accepter.

Une fois acceptée, l'empreinte est stockée localement. Si elle change lors d'une connexion future, SSHBorg vous avertira — cela pourrait indiquer une reconstruction du serveur, une rotation des clés ou une attaque man-in-the-middle.

// ASTUCE
Vous pouvez vérifier l'empreinte du serveur à tout moment avec :
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

// GESTIONNAIRE DE FICHIERS SFTP

Le gestionnaire de fichiers SFTP vous permet de parcourir, envoyer, télécharger, renommer et supprimer des fichiers sur votre serveur directement depuis votre téléphone. Ouvrez une session SFTP depuis l'écran des hôtes en appuyant sur SFTP.

Navigation

Appuyez sur un dossier pour l'ouvrir. Utilisez la flèche de retour ou appuyez sur un segment de la barre de chemin pour remonter dans l'arborescence.

Les liens symboliques sont affichés avec un petit badge en forme de chaîne. Appuyer sur un lien symbolique navigue vers sa cible : s'il pointe vers un répertoire, vous y entrez ; s'il pointe vers un fichier, il se comporte comme un fichier normal.

Envoyer des fichiers

Appuyez sur le bouton d'envoi (↑) pour sélectionner un ou plusieurs fichiers depuis le stockage de votre téléphone. L'envoi commence immédiatement et la progression est affichée en haut de l'écran.

Télécharger des fichiers et des dossiers

Appuyez sur un fichier pour le télécharger immédiatement. Pour télécharger un dossier entier, appuyez sur l'icône de téléchargement à côté — SSHBorg télécharge toute l'arborescence et la sauvegarde dans le dossier Téléchargements de votre téléphone.

Si un fichier existe déjà à la destination, une boîte de dialogue vous demandera si vous souhaitez écraser, ignorer le fichier ou annuler tout le transfert.

// NOTE SUR LES LIENS SYMBOLIQUES
Lors du téléchargement d'un dossier, les liens symboliques pointant vers des répertoires sont ignorés — seuls les fichiers normaux (y compris les liens vers des fichiers) sont téléchargés. Cela évite les téléchargements récursifs non souhaités.

Sélection multiple et opérations groupées

Appuyez longuement sur un élément pour activer le mode de sélection, puis appuyez sur d'autres éléments pour les ajouter à la sélection. La barre d'outils affiche les actions disponibles :

  • Télécharger — télécharge tous les fichiers et dossiers sélectionnés en une seule fois, avec une boîte de dialogue de progression et la possibilité d'annuler.
  • Supprimer — supprime tous les éléments sélectionnés. La suppression d'un dossier non vide efface tout son contenu de manière récursive. Cette action est irréversible.

// CLÉS SSH

L'authentification par clé est plus sécurisée que les mots de passe et ne nécessite rien à mémoriser ni à saisir après la configuration.

Générer une clé

Allez dans Paramètres → Clés SSH → Générer une nouvelle clé. SSHBorg prend en charge :

  • Ed25519 — recommandé. Rapide, compact et sécurisé.
  • ECDSA (P-256 / P-384) — bonne compatibilité avec les anciens serveurs.
  • RSA (2048 / 4096 bits) — compatibilité maximale, mais plus lent.

Donnez à la clé un nom significatif (ex. mon-vps ou serveur-travail) pour la retrouver facilement.

// NOTE DE SÉCURITÉ
SSHBorg n'autorise intentionnellement pas l'export des clés privées. La clé ne quitte jamais l'appareil. Si vous avez besoin de la même clé sur un autre appareil, générez-en une nouvelle là-bas et autorisez-la séparément sur vos serveurs — c'est l'approche la plus sûre.

Autoriser la clé sur le serveur

Après avoir généré une clé, appuyez dessus pour voir la clé publique. Copiez-la et collez-la dans le fichier ~/.ssh/authorized_keys du serveur pour l'utilisateur souhaité.

  1. Sur votre téléphone, ouvrez SSHBorg → Paramètres → Clés SSH → appuyez sur la clé → copiez la clé publique.
  2. Connectez-vous à votre serveur (avec un mot de passe ou une autre clé déjà disponible).
  3. Ajoutez la clé publique au fichier des clés autorisées :
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    echo "ssh-ed25519 AAAA...votreclé..." >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
  4. Essayez de vous connecter avec SSHBorg — il devrait se connecter sans demander de mot de passe.
// PRÉREQUIS SERVEUR
Assurez-vous que votre serveur a PubkeyAuthentication yes dans /etc/ssh/sshd_config. C'est la valeur par défaut sur la plupart des distributions, mais certaines images renforcées le désactivent.

Chiffrement supplémentaire de la clé

SSHBorg propose une phrase secrète supplémentaire optionnelle pour vos clés (Paramètres → Clés SSH → appuyez sur une clé → Activer le chiffrement). Quand elle est activée, la clé est chiffrée avec une phrase que SSHBorg ne stocke pas — elle vous sera demandée à chaque utilisation.

Fortement recommandé si vous stockez des identifiants sensibles sur votre téléphone ou si le verrouillage biométrique est désactivé.

// SUGGESTIONS DE COMMANDES

SSHBorg affiche une barre de suggestions au-dessus du clavier pendant que vous tapez dans le terminal. Les suggestions proviennent de l'historique du shell de l'utilisateur avec lequel vous êtes connecté.

Fonctionnement

Lors de l'ouverture d'une session terminal, SSHBorg lit le fichier d'historique du shell sur le serveur distant. Il vérifie les emplacements suivants dans l'ordre :

  1. ~/.bash_history — par défaut pour les shells Bash
  2. ~/.zsh_history — par défaut pour Zsh (aussi vérifié comme $HISTFILE si défini)
  3. ~/.local/share/fish/fish_history — pour les utilisateurs de Fish shell

Le premier fichier existant et lisible est utilisé. Pendant la saisie, les commandes sont filtrées en temps réel et affichées sous forme de puces dans la barre de suggestions. Appuyez sur une puce pour insérer la commande.

Résolution de problèmes

Aucune suggestion n'apparaît

  • Le fichier d'historique n'existe peut-être pas encore (première connexion ou shell non configuré pour sauvegarder l'historique).
  • Assurez-vous que votre shell est configuré pour enregistrer l'historique. Pour Bash, ajoutez à ~/.bashrc :
    HISTFILE=~/.bash_history
    HISTSIZE=10000
    HISTFILESIZE=20000
  • Pour Zsh, ajoutez à ~/.zshrc :
    HISTFILE=~/.zsh_history
    HISTSIZE=10000
    SAVEHIST=10000
    setopt APPEND_HISTORY SHARE_HISTORY

Les suggestions appartiennent au mauvais utilisateur

// LIMITATION CONNUE
Si vous vous connectez en tant qu'un utilisateur puis exécutez sudo su - root (ou changez d'utilisateur avec su), la barre de suggestions affiche toujours l'historique de l'utilisateur de connexion d'origine, pas de root. Cela s'explique par le fait que SSHBorg lit le fichier d'historique avant le démarrage du shell, en utilisant les identifiants de connexion.

Pour obtenir les suggestions de l'historique root, ajoutez une entrée d'hôte séparée dans SSHBorg configurée pour se connecter directement en tant que root (si votre serveur le permet).

// GESTES DU TERMINAL

Le terminal répond à quelques gestes tactiles en plus de la frappe :

  • Faire défiler l'historique — glissez vers le haut ou le bas pour parcourir le tampon de défilement du terminal.
  • Zoom — pincez pour augmenter ou réduire la taille du texte.
  • Copier du texte — appuyez longuement n'importe où sur le terminal pour entrer en mode sélection. Faites glisser les poignées pour ajuster la zone sélectionnée, puis appuyez sur Copier la sélection pour le texte surligné, ou Tout copier pour toute la sortie. Appuyez en dehors pour annuler.
  • Coller — utilisez le bouton Coller dans la barre de touches supplémentaires (visible lorsque le clavier est ouvert).

// TOUCHES SUPPLÉMENTAIRES

Lorsque le clavier virtuel est ouvert, une rangée de boutons de raccourci apparaît au-dessus. Faites défiler la barre latéralement pour atteindre toutes les touches.

Touches de modification

Ctrl et Alt sont des bascules persistantes — touchez-en une, puis touchez une touche lettre pour envoyer la combinaison. Elles se réinitialisent automatiquement après la prochaine frappe.

  • Ctrl+C — interrompt le processus en cours.
  • Ctrl+D — envoie EOF / ferme le shell.
  • Ctrl+Z — suspend le processus.
  • Ctrl+L — efface l'écran.

Mode texte

L'icône de vérification orthographique bascule le clavier entre le mode terminal et le mode texte. En mode terminal (par défaut) la correction automatique et les suggestions de mots sont désactivées — idéal pour les commandes et les chemins de fichiers. En mode texte le clavier se comporte comme un champ de texte normal, avec les suggestions et la correction automatique activées. Utile pour taper du langage naturel via SSH, par exemple avec Claude Code ou d'autres outils interactifs.

Navigation et édition

  • ESC — touche Échap.
  • Tab — auto-complétion du shell.
  • ↑ ↓ ← → — touches fléchées du curseur.
  • Home / End — aller au début ou à la fin de la ligne.
  • PgUp / PgDn — page précédente / page suivante.
  • Del — suppression avant (caractère à droite du curseur).
  • Coller — coller le presse-papiers dans le terminal.

Touches de fonction

Faites défiler la barre vers la droite pour atteindre les touches F1 à F12.

// TRANSFERT D'AGENT

Le transfert d'agent SSH permet d'utiliser les clés stockées dans SSHBorg pour authentifier des connexions supplémentaires effectuées depuis le serveur distant — par exemple pour git clone d'un dépôt privé, ou pour rebondir vers une deuxième machine.

Activer le transfert dans SSHBorg

Lors de l'ajout ou de la modification d'un hôte, activez le commutateur Transfert d'agent. SSHBorg agira comme agent SSH pour cette session.

Configuration côté serveur

Le serveur doit autoriser le transfert d'agent. Vérifiez /etc/ssh/sshd_config :

AllowAgentForwarding yes

C'est la valeur par défaut sur la plupart des systèmes. Après modification, redémarrez le démon SSH :

sudo systemctl restart sshd

Configuration client par hôte (optionnel)

Si vous vous connectez aussi à ce serveur depuis un ordinateur portable ou de bureau, vous pouvez configurer le transfert de façon permanente dans votre ~/.ssh/config local :

Host myserver
    HostName 203.0.113.42
    User ubuntu
    ForwardAgent yes
// NOTE DE SÉCURITÉ
Le transfert d'agent donne au serveur distant un accès temporaire à votre socket d'agent SSH. Un utilisateur root (ou un processus compromis) sur ce serveur pourrait utiliser vos clés pour se connecter ailleurs pendant que votre session est active. N'activez le transfert que sur les serveurs de confiance.

// COUPURES DE CONNEXION ET MULTIPLEXEURS

SSH est une connexion TCP active entre votre téléphone et le serveur. Si la connexion est interrompue — même une seconde — la session et tout ce qui s'y exécutait est perdu.

Pourquoi les connexions se coupent sur mobile

Les réseaux mobiles sont particulièrement sujets aux coupures de connexion pour plusieurs raisons :

  • Changements d'adresse IP — en voyage ou lors d'un changement d'antenne, votre opérateur peut vous attribuer une nouvelle IP publique. Comme les connexions TCP sont liées à l'adresse IP, la session SSH existante devient immédiatement invalide.
  • Basculement Wi-Fi ↔ données mobiles — passer d'un réseau Wi-Fi aux données mobiles (ou inversement) change votre IP et rompt toute connexion TCP ouverte.
  • Délais d'inactivité — les opérateurs et routeurs NAT ferment souvent les connexions inactives après quelques minutes. Les sessions actives mais silencieuses (surveillance de logs, attente de saisie) sont vulnérables.
  • Perte de signal — tunnels, parkings souterrains ou simplement un signal faible peuvent brièvement interrompre le réseau, ce qui suffit à tuer une session.
// IMPORTANT
Si vous exécutez une longue commande (une compilation, une sauvegarde, une migration de base de données) directement dans le terminal SSH et que la connexion se coupe, la commande est immédiatement interrompue. Tout travail partiel peut se retrouver dans un état incohérent.

La solution : tmux ou screen

Un multiplexeur de terminal exécute une session persistante sur le serveur, complètement indépendante de votre connexion SSH. Si la connexion se coupe, la session et tout ce qu'elle exécute continue. À la reconnexion, vous vous réattachez et trouvez tout exactement comme vous l'avez laissé.

C'est l'habitude la plus utile pour quiconque gère des serveurs depuis un téléphone.

Démarrage rapide avec tmux

tmux est disponible sur la plupart des distributions Linux modernes et est le choix recommandé.

# Démarrer une nouvelle session nommée
tmux new -s work

# Se détacher de la session (la laisser tourner)
Ctrl+B, puis D

# Lister les sessions en cours
tmux ls

# Se rattacher à une session
tmux attach -t work

# Se rattacher à la session la plus récente
tmux attach

Démarrage rapide avec screen

screen est plus ancien mais disponible sur pratiquement tout système Unix, y compris les images serveur minimales où tmux peut ne pas être installé.

# Démarrer une nouvelle session nommée
screen -S work

# Se détacher de la session
Ctrl+A, puis D

# Lister les sessions en cours
screen -ls

# Se rattacher à une session
screen -r work

Flux de travail recommandé sur mobile

  1. Connectez-vous au serveur avec SSHBorg.
  2. Démarrez ou rattachez-vous immédiatement à une session tmux/screen : tmux attach || tmux new -s main
  3. Exécutez vos commandes dans le multiplexeur.
  4. Si la connexion se coupe, reconnectez-vous — votre session est toujours là.
// ASTUCE
Vous pouvez ajouter tmux attach || tmux new -s main à votre ~/.bashrc ou ~/.zshrc sur le serveur pour qu'une session multiplexeur démarre automatiquement à chaque connexion via SSHBorg.

// JUMP HOSTS

Un jump host (aussi appelé hôte bastion) est un serveur intermédiaire par lequel vous devez passer pour atteindre un serveur cible non directement accessible depuis internet. SSHBorg prend en charge nativement les chaînes de sauts simples et multi-sauts.

Configurer un jump host dans SSHBorg

  1. Ajoutez le serveur bastion comme hôte normal dans SSHBorg (ex. bastion).
  2. Ajoutez le serveur cible comme autre hôte.
  3. Dans les paramètres de l'hôte cible, définissez Jump host sur le bastion créé.
  4. Activez Transfert d'agent sur l'entrée du bastion — cela permet à votre clé d'être transférée via le bastion pour s'authentifier sur la cible.
// FONCTIONNEMENT
SSHBorg établit d'abord une connexion SSH au bastion, puis ouvre un canal TCP transféré via celui-ci vers le serveur cible. La clé privée ne quitte jamais le téléphone — le bastion ne fait que relayer le flux chiffré.

Chaînes multi-sauts

Si vous devez passer par plusieurs serveurs intermédiaires (ex. internet → bastion → dmz → cible), créez une entrée pour chaque saut et chaînez-les :

  • bastion — pas de jump host, transfert d'agent actif
  • dmz — jump host = bastion, transfert d'agent actif
  • target — jump host = dmz
// IMPORTANT
Le transfert d'agent doit être activé sur chaque saut intermédiaire, pas seulement le premier. Sans cela, la chaîne d'authentification se rompt et la connexion au serveur final échoue avec une erreur « permission denied ».

Configuration manuelle équivalente (pour référence)

La configuration équivalente dans un ~/.ssh/config sur ordinateur ressemble à ceci :

Host bastion
    HostName bastion.example.com
    User admin
    ForwardAgent yes

Host target
    HostName 10.0.1.50
    User ubuntu
    ProxyJump bastion
    ForwardAgent yes

Avec cette configuration, ssh target sur votre ordinateur passe de façon transparente par le bastion.

Exigences du pare-feu

  • Votre téléphone doit pouvoir atteindre le bastion sur son port SSH (généralement 22).
  • Le bastion doit pouvoir atteindre la cible sur son port SSH.
  • La cible n'a pas besoin d'être accessible directement depuis votre téléphone.

// SESSIONS MULTIPLES

SSHBorg vous permet de garder plusieurs sessions de terminal SSH et de gestionnaire de fichiers SFTP ouvertes en même temps, même vers des serveurs différents.

  • Ouvrez une session depuis l'écran des hôtes en appuyant sur Terminal ou SFTP.
  • Basculez entre les sessions ouvertes via le sélecteur de sessions en haut de l'écran.
  • Les sessions restent actives en arrière-plan tant que la connexion réseau tient.
  • La liste des hôtes affiche un petit badge à côté de chaque hôte avec le nombre de sessions SSH et SFTP actives, pour voir d'un coup d'œil ce qui est ouvert.
// ASTUCE
Les commandes longues (compilations, sauvegardes, suivi de logs) continuent de s'exécuter même quand vous basculez vers une autre session. Utilisez un multiplexeur de terminal comme tmux ou screen côté serveur si vous souhaitez qu'elles survivent même à une coupure de connexion SSH.

// SÉCURITÉ DE L'APP

Verrouillage biométrique

Activez le verrouillage biométrique dans Paramètres → Sécurité → Verrouillage biométrique. Quand il est actif, SSHBorg exige une empreinte digitale ou une reconnaissance faciale avant d'afficher des hôtes, des identifiants ou des données de session.

Vous pouvez définir un délai d'inactivité — après ce nombre de minutes en arrière-plan, l'app se verrouille automatiquement.

Protection des captures d'écran

Par défaut, SSHBorg bloque les captures d'écran et l'enregistrement d'écran pour empêcher le contenu sensible du terminal de fuiter via l'écran des apps récentes ou des outils de capture.

Si vous devez prendre une capture (ex. pour partager une sortie terminal), vous pouvez désactiver temporairement la protection dans Paramètres → Sécurité → Autoriser les captures.

Stockage des identifiants

Tous les identifiants (mots de passe, clés privées, phrases secrètes) sont stockés chiffrés en utilisant l'Android Keystore — une enclave sécurisée matérielle disponible sur Android 10+. Ils ne sont jamais écrits sur un stockage externe ni transmis nulle part.

// NOTE SUR LES SAUVEGARDES
Comme les clés sont stockées dans l'Android Keystore, elles ne peuvent pas être sauvegardées via la sauvegarde cloud Android et ne seront pas transférées automatiquement vers un nouveau téléphone. Avant de changer d'appareil, assurez-vous d'autoriser une nouvelle clé générée sur le nouvel appareil sur tous vos serveurs.

// SAUVEGARDE DE LA CONFIGURATION

SSHBorg peut exporter et importer les configurations des hôtes sous forme de fichier JSON. Cela permet de transférer la liste des serveurs vers un autre appareil ou de conserver une sauvegarde portable de sa configuration.

// IMPORTANT
La sauvegarde inclut uniquement les configurations des hôtes (adresse, port, nom d'utilisateur, paramètres). Les mots de passe et les clés SSH ne sont jamais exportés — ils doivent être reconfigurés après l'importation sur un nouvel appareil.

Exporter

Allez dans Paramètres → Sauvegarde → Exporter les hôtes. Choisissez où enregistrer le fichier via le sélecteur de fichiers système. Le fichier s'appelle sshborg_hosts.json par défaut.

Importer

Allez dans Paramètres → Sauvegarde → Importer les hôtes. Sélectionnez le fichier .json précédemment exporté (ou créé manuellement). SSHBorg le fusionnera avec la liste des hôtes existants :

  • Les hôtes dont le nom correspond à une entrée existante sont mis à jour.
  • Les hôtes avec un nouveau nom sont ajoutés.
  • Les hôtes absents du fichier restent inchangés.

Format JSON

Le fichier exporté est un objet JSON standard. Vous pouvez également le créer manuellement pour importer en masse une liste de serveurs depuis une autre source.

{
  "version": 1,
  "exported_at": "2026-05-14T10:00:00Z",
  "hosts": [
    {
      "label":           "Mon VPS",
      "hostname":        "203.0.113.42",
      "port":            22,
      "username":        "ubuntu",
      "agentForwarding": false,
      "jumpMode":        "simple",
      "jumpHosts":       null,
      "jumpHostIdList":  null,
      "portForwardings": null,
      "sftpStartMode":   "last",
      "sftpStartDir":    null
    }
  ]
}

Référence des champs

  • label — nom affiché dans SSHBorg. Utilisé comme clé unique pour la fusion lors de l'import. Obligatoire.
  • hostname — adresse ou IP du serveur (IPv4 ou IPv6). Obligatoire.
  • port — port SSH. Par défaut : 22.
  • username — utilisateur de connexion. Obligatoire.
  • agentForwardingtrue pour activer le transfert de l'agent SSH. Par défaut : false.
  • jumpMode"simple" (utilise le texte de jumpHosts) ou "host_list" (utilise les ID internes SSHBorg). Utilisez "simple" lors d'une création manuelle.
  • jumpHosts — jump hosts séparés par des virgules au format [utilisateur@]hôte[:port]. Utilisé uniquement quand jumpMode est "simple".
  • portForwardings — règles de redirection de port local séparées par des sauts de ligne en syntaxe SSH -L, ex. "8080:localhost:8080".
  • sftpStartMode — répertoire de départ SFTP : "last" (mémoriser le dernier visité), "fixed" (toujours utiliser sftpStartDir), "home" (dossier personnel du serveur). Par défaut : "last".
  • sftpStartDir — chemin à utiliser quand sftpStartMode est "fixed".
// CHAMPS OPTIONNELS
Tous les champs sauf label, hostname et username sont optionnels. Les champs omis prennent leur valeur par défaut.