web-dev-qa-db-fra.com

Comment obliger OpenSSH à utiliser ksshaskpass sous KDE?

Lorsque j'utilise un bureau GNOME sur Ubuntu, si j'utilise un client OpenSSH pour se connecter à un autre ordinateur (exécuté depuis le terminal gnome), une fenêtre contextuelle graphique unique demandant le mot de passe de ma clé privée apparaît. Après cela, je n'ai plus besoin d'entrer mon mot de passe car il est mis en cache par l'agent SSH.

Sous KDE, cela ne fonctionne pas comme ça. Lorsque je lance ssh depuis konsole, je reçois une invite textuelle pour ma phrase secrète à chaque fois, même si ssh-agent est en cours d'exécution.

Si je lance ssh-add à partir du terminal, je peux entrer ma phrase secrète sur le terminal. Elle sera stockée par ssh-agent et je ne recevrai plus d'invites, alors si j'exécute ssh-add le La ligne de commande graphique de KRunner (boîte de dialogue "Exécuter") me permet d’obtenir une invite graphique avec le même comportement. Le problème est que je dois me rappeler d’avoir exécuté ssh-add chaque fois que je me connecte au bureau.

Comment faire en sorte que ssh se comporte sous KDE, de la même manière que sous GNOME - la première fois que la phrase secrète est nécessaire, ouvrez une boîte de dialogue graphique et stockez-la dans l'agent.

J'ai installé ksshaskpass, mais cela n'a rien changé.

6
Guss

Je ne connais pas les composants internes, alors je vous explique pourquoi cela fonctionne dans GNOME et non dans KDE, mais je peux proposer une solution.

Définissez une fonction comme celle-ci dans votre ~/.bashrc:

ssh() {
    if ! ssh-add -l &>/dev/null; then
        ssh-add </dev/null &>/dev/null
    fi
    command ssh "$@"
}

c'est-à-dire que si l'agent n'a pas déjà de clé stockée (! ssh-add -l), appelez-le avec l'entrée de /dev/null: c'est pour convaincre ssh-add n'a pas de terminal et forcer à demander le mot de passe avec une fenêtre graphique.

Vous pouvez définir la variable d'environnement SSH_ASKPASS pour qu'elle pointe vers une autre application et demande le mot de passe.

5
enzotib