Présentation
Le système Gentoo propose plusieurs options pour ssh-askpass, mais chacune d'elles présente des inconvénients. Les options disponibles sont kde-plasma/ksshaskpass, lxqt-base/lxqt-openssh-askpass, net-misc/gnome-ssh-askpass, net-misc/ssh-askpass-fullscreen et net-misc/x11-ssh-askpass. Cependant, chacune de ces options nécessite soit X11, soit une pile KDE complète, ce qui n'est pas souhaitable pour un système minimaliste.
Contexte technique
Le problème est dû au fait que les packages disponibles pour ssh-askpass nécessitent des dépendances qui ne sont pas souhaitées. Par exemple, kde-plasma/ksshaskpass nécessite une pile KDE complète, tandis que lxqt-base/lxqt-openssh-askpass nécessite X11. Pour résoudre ce problème, il est possible de créer son propre ssh-askpass en utilisant Zig et GTK4, ce qui permet d'éviter les dépendances indésirables.
Fonctionnement
Le fonctionnement de ssh-askpass est simple : il s'agit d'un outil qui permet de saisir une phrase de passe pour une clé SSH lorsqu'il n'y a pas de terminal disponible. L'outil est appelé par OpenSSH lorsque celui-ci nécessite une phrase de passe pour une clé SSH. Le code de l'outil peut être écrit en Zig et utiliser les bibliothèques GTK4 pour créer une interface graphique.
Implémentation
L'implémentation de ssh-askpass en Zig et GTK4 peut être réalisée en utilisant les bibliothèques suivantes :
import gtk4;Il est possible de créer une interface graphique simple pour saisir la phrase de passe en utilisant les widgets GTK4. Par exemple : let window = gtk4.Window.new(gtk4.WindowType.TOPLEVEL);Il est également possible de gérer les événements de l'interface graphique pour récupérer la phrase de passe saisie par l'utilisateur.