H ILYGO Hawser
Retour au site

Ajouter un serveur

Créer une fiche de connexion : protocole, authentification, bastion, réglages avancés, test, puis modification, duplication ou suppression.

Avant d'ouvrir le formulaire

Une fiche de connexion vit dans un coffre. Si l'application affiche l'écran de déverrouillage, ouvrez d'abord le vôtre : Ouvrir et verrouiller. Si vous n'en avez pas encore, commencez par Créer son coffre.

La vue Hôtes est l'écran d'accueil de Hawser : icône 🖥️ de la barre latérale gauche, titre « Connections » dans la barre du haut. Deux chemins mènent au formulaire :

  • Le bouton « + Nouveau » (« + New » en anglais), en haut à droite de la barre.
  • La palette ⌘K, puis l'entrée « New connection ».

Sur un coffre vide, la vue affiche « No hosts yet » et un bouton « + Add your first host » qui ouvre le même formulaire.

Vue Hôtes de Hawser, cartes de connexion regroupées avec barre de filtres par protocole
Les cartes sont regroupées par groupe, avec le compte d'hôtes à droite de chaque en-tête. La pastille sur l'avatar indique le dernier test TCP : verte avec le temps de réponse, rouge avec l'erreur, grise si l'hôte n'a jamais été testé.

Choisir le protocole

À la création, une fenêtre « Choose a protocol » s'affiche avant le formulaire. Elle propose trois cartes. Échap, ou un clic hors de la fenêtre, annule. Une fois le choix fait, le titre du formulaire devient « New connection (SSH / SFTP) », « (FTP) » ou « (Telnet) ».

ProtocoleCe que la fiche permet réellementPort
SSH / SFTPTerminal, navigateur de fichiers, exécution de commandes, tunnels, tableaux de bord Server / Docker / K8s. Une seule fiche donne les deux boutons « ⌨️ Shell » et « 📁 SFTP » sur la carte.22
FTPNavigateur de fichiers seul : navigation, envoi, téléchargement, création, renommage et suppression de dossier. Mode passif imposé. Pas de terminal.21
TelnetTerminal seul, en texte clair. Pas de transfert de fichiers, pas de snippets de démarrage.23

Le protocole reste modifiable ensuite, par les trois boutons radio en haut de l'onglet General. La fenêtre l'annonce : « You can change this later from the connection settings. »

Onglet General : les champs, dans l'ordre

Le formulaire s'ouvre sur cet onglet, curseur déjà placé dans Name.

ChampCe qu'il attend
NameLe libellé affiché sur la carte, dans la palette ⌘K et sur l'onglet de session. Obligatoire.
PortPré-rempli selon le protocole. Valeur entière entre 1 et 65535.
HostNom DNS ou adresse IP. Obligatoire.
UserLe compte distant. Masqué pour Telnet. En FTP, un champ laissé vide fait tenter une connexion anonymous.
GroupeChamp libre, avec autocomplétion sur les groupes déjà utilisés dans le coffre. Laissé vide, la fiche atterrit en fin de liste sous l'en-tête « — Sans groupe — ».
Tags (séparés par virgule)Affichés sur la carte et pris en compte par la recherche.
Path initial SFTPDossier d'ouverture du panneau distant. Visible pour SSH uniquement, valeur par défaut .

Changer de protocole remet le port à la valeur par défaut seulement si le champ est vide ou s'il contient encore un port par défaut (22, 21 ou 23). Un port personnalisé est conservé : après un passage de SSH à FTP, vérifiez que le port affiché est bien celui de votre serveur FTP.

Les libellés de ce formulaire ne suivent pas la langue de l'interface : ils restent dans un mélange figé anglais / français (« Name », « Groupe », « Path initial SFTP »), même quand la barre latérale est en français.

Onglet Authentication : mot de passe ou clé

Pour un hôte SSH, un sélecteur à deux positions propose Password (position par défaut) ou Clé SSH. Pour un hôte FTP, l'onglet ne contient qu'un champ « Password FTP ». Pour un hôte Telnet, il est vide.

Mot de passe

Le mot de passe est saisi dans un champ masqué et enregistré chiffré dans le coffre .ivault, avec le reste de la fiche. Rien n'est écrit dans le trousseau macOS ni dans un fichier en clair : voir Ce qui est chiffré.

À la réouverture de la fiche, le champ a disparu au profit d'une pastille « 🔒 Password saved » et d'un bouton « Change ». Ce bouton ouvre une petite fenêtre « Change password » : New password, Confirm, un bouton « 🧪 Test », un bouton Apply. Deux saisies différentes donnent l'erreur « Les mots de passe diffèrent ». Après validation, la notification « Updated (unsaved) » rappelle que la modification n'est écrite dans le coffre qu'après Save sur la fiche.

Clé SSH

Le bouton « Clé SSH » remplace le champ mot de passe par la liste « Saved SSH key ». Cette liste ne contient que les clés déjà enregistrées dans le coffre ; celles qui ont été validées portent un « ✓ ». Le bouton « + New », à côté, ouvre la fenêtre de création de clé et re-sélectionne automatiquement la clé fraîchement créée.

La phrase de passe de la clé est stockée avec elle dans le coffre : elle n'est jamais redemandée à la connexion. Détails dans Gérer ses clés SSH.

Vue Clés SSH de Hawser listant les clés enregistrées dans le coffre
Le formulaire ne sait pas lire une clé posée sur le disque : elle doit d'abord exister dans le coffre, via cette vue ou via le bouton « + New » de l'onglet Authentication.

Deux messages à connaître. « Select an SSH key » bloque l'enregistrement quand le mode Clé SSH est actif sans clé choisie. « Clé SSH introuvable (vérifie l'host : authType=key sans keyId valide) » apparaît plus tard, au lancement de la session, quand la clé référencée a été supprimée du coffre depuis.

Ce que l'onglet ne fait pas

Rebond par bastion (jump host)

Onglet Advanced, première liste : « Jump Host (bastion) », sur « — Direct connection — » par défaut. Elle ne propose que les autres hôtes SSH et SFTP du coffre, jamais la fiche en cours d'édition. Le bastion doit donc exister comme fiche à part entière, avec ses propres identifiants.

À la connexion, Hawser ouvre d'abord une session vers le bastion, y ouvre un canal direct-tcpip vers la cible, puis rejoue la poignée de main SSH complète à travers ce canal. L'empreinte du bastion est vérifiée comme celle de la cible. Un rebond actif se signale par un sur la carte et sur la barre de l'onglet de session.

Les erreurs de rebond sont explicites et méritent d'être lues jusqu'au bout : « connect failed: jump host connect timeout » (le bastion ne répond pas), « connect failed: open direct-tcpip: … » (le bastion refuse d'ouvrir le canal, souvent parce que AllowTcpForwarding est désactivé côté serveur), « connect failed: target connect timeout » (le canal est ouvert mais la cible ne répond pas en SSH), « Jump host introuvable dans le store » (la fiche du bastion a été supprimée).

Onglet Advanced : délais, reconnexion, snippets

Le reste de cet onglet est inégal. Voici ce que chaque réglage fait vraiment, avec sa valeur par défaut.

RéglageDéfautEffet réel
Keep-alive (ms)15000Aucun. La valeur est enregistrée et relue, mais n'est transmise à aucun moteur.
Ready timeout (ms)20000Partiel. Le délai appliqué à la connexion ne descend jamais sous 180 s, pour laisser à la fenêtre de validation d'empreinte le temps de s'afficher. Une valeur supérieure à 180000 ms est, elle, respectée.
Keep-alive max3Aucun. Enregistré, jamais utilisé.
Reconnexion automatique avec backoffcochéeActif. À la fermeture non voulue d'un shell SSH, la pastille passe à « Déconnecté » puis « Reconnexion dans Ns… ». Le délai double à chaque échec (1 s, 2 s, 4 s…) et plafonne à 20 s. Décochée, l'onglet reste simplement sur « Déconnecté ».
Snippets de démarrageaucunActif. Les snippets cochés sont injectés dans le shell 500 ms après l'ouverture, dans l'ordre, après interpolation des variables de l'hôte.

Jump host, les trois délais et la liste de snippets sont masqués pour FTP et Telnet. Les snippets de démarrage ne s'exécutent que sur une session shell SSH : ni l'onglet SFTP, ni Telnet ne les jouent. Voir Snippets et inspection.

Un hôte injoignable échoue de toute façon immédiatement, au niveau TCP, bien avant que le plancher de 180 s n'entre en jeu. Le moteur applique par ailleurs son propre délai d'inactivité de 600 s.

Tester, puis enregistrer

En bas du formulaire, à gauche de Cancel et Save, le bouton « 🧪 Test » ouvre une connexion TCP vers host:port avec un délai de 5 s, sans rien enregistrer. Le résultat s'affiche à côté : « ✓ OK » en vert, ou « ✗ » suivi de l'erreur système en rouge.

✗ timeout                                      aucune réponse en 5 s
✗ Connection refused (os error 61)             le port est fermé
✗ nodename nor servname provided, or not known nom d'hôte non résolu
Host required                                  le champ Host est vide

Save valide la fiche, contrôle le quota cloud s'il s'agit d'une création sur un coffre appairé, puis écrit dans le coffre chiffré de façon synchrone : une erreur d'écriture est visible tout de suite et l'ajout est annulé en mémoire. Le bouton se verrouille pendant l'écriture. Confirmation : « Host added » ou « Host updated ».

  • « Name and host required » — l'un des deux champs obligatoires est vide.
  • « Port must be between 1 and 65535 » — port hors bornes.
  • « Select an SSH key » — mode Clé SSH sans clé choisie.
  • « no vault open » — le coffre s'est verrouillé entre-temps.
  • Fenêtre « ⚠ Quota cloud atteint » — le coffre est appairé et l'ajout dépasserait la limite d'items du plan. Voir Synchroniser ses coffres.

Modifier, dupliquer, supprimer

Tout passe par le bouton « ⋯ » en haut à droite de la carte. Il n'existe aucun autre chemin. Le menu contient quatre entrées : « ✏️ Edit », « 📡 Test », « 📋 Duplicate », et « 🗑️ Delete » en rouge.

  • Edit rouvre le formulaire sur la fiche, directement à l'onglet General. Le sélecteur de protocole ne réapparaît pas : le protocole se change par les trois radios.
  • Duplicate crée immédiatement une copie complète, mot de passe et référence de clé compris, avec le suffixe « (copie) » dans le nom. Aucune fenêtre ne s'ouvre : la copie est enregistrée telle quelle, puis renommez-la par Edit. Confirmation « Dupliquée ».
  • Delete demande confirmation (« Delete "<nom>" ? ») avant d'écrire. Si l'écriture dans le coffre échoue, la fiche est restaurée en mémoire et l'erreur affichée : rien ne disparaît en silence.

Les autres écarts connus de cette version sont recensés dans Limites et dépannage.