Como obter o OpenSSH para usar o ksshaskpass no KDE?

6

Ao usar uma área de trabalho GNOME no Ubuntu, se eu usar o cliente OpenSSH para conectar-me a outro computador (executando a partir do terminal gnome), recebo um único popup gráfico pedindo a frase secreta da minha chave privada. Depois disso, não preciso mais inserir minha frase-senha, pois ela é armazenada em cache pelo agente SSH.

No KDE, não funciona assim - quando eu inicio o ssh a partir do konsole, recebo uma mensagem de texto para a minha frase-passe todas as vezes, mesmo que o ssh-agent esteja em execução.

Se eu rodar ssh-add a partir do terminal, eu posso inserir minha frase-senha no terminal e ela será armazenada pelo ssh-agent e não receberei mais prompts de frase-passe, enquanto se eu executar o ssh -add a linha de comando gráfica do KRunner (caixa de diálogo "Executar"), então eu recebo um prompt gráfico com o mesmo comportamento. O problema é que eu tenho que lembrar de rodar o ssh-add sempre que eu fizer login na área de trabalho.

Como posso fazer com que o ssh se comporte no KDE, da mesma forma que no GNOME - a primeira vez que a frase secreta é necessária, abra uma caixa de diálogo gráfica e armazene a frase secreta no agente.

Eu instalei o ksshaskpass, mas isso não mudou nada.

    
por Guss 26.11.2011 / 20:44

1 resposta

5

Eu não conheço os componentes internos para explicar por que no GNOME ele funciona e no KDE não, mas posso sugerir uma solução.

Defina uma função como a seguinte no seu ~/.bashrc :

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

ou seja, se o agente já não tiver nenhuma chave armazenada ( ! ssh-add -l ), chame-o com entrada de /dev/null : isto é para convencer ssh-add não tem terminal e forçar a perguntar a senha com uma janela GUI .

Você pode definir a variável de ambiente SSH_ASKPASS para apontar para um aplicativo diferente para solicitar a senha.

    
por enzotib 26.11.2011 / 20:58