Как заставить OpenSSH использовать ksshaskpass под KDE?

При использовании рабочего стола GNOME на Ubuntu, если я использую клиент OpenSSH для соединения с другим компьютером (работающий от терминала гнома), я получаю единственное графическое всплывающее окно, просящее пароль моего закрытого ключа. После этого я больше не должен вводить свой пароль, поскольку он кэшируется агентом SSH.

Под KDE это не работает как этот - когда я запускаю ssh с консоли, я получаю текстовую подсказку для своего пароля каждый раз, даже при том, что ssh-агент работает.

Если я работаю, ssh-добавляют от терминала затем, я могу ввести свой пароль в терминал, и он будет сохранен ssh-агентом, и я не буду получать больше подсказки пароля, в то время как, если я работаю, ssh-добавляют графическую командную строку KRunner (диалоговое окно "Выполнения") затем, я получаю графическую подсказку с тем же поведением. Проблема, я должен не забыть работать, ssh-добавляет каждый раз, когда я вхожу в систему рабочего стола.

Как я могу заставить ssh вести себя под KDE, то же, как это делает на GNOME - в первый раз, когда пароль необходим, всплывающее окно графическое диалоговое окно, и сохраните пароль в агенте.

Я установил ksshaskpass, но это ничего не изменило.

6
задан 26 November 2011 в 12:44

1 ответ

Я не знаю, что внутренности так объясняют, почему в GNOME это работает, и в KDE это не делает, но я могу предложить решение.

Определите функцию как следующее в Вашем ~/.bashrc:

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

т.е. если агент уже не имеет никакого ключа, сохраненного (! ssh-add -l), затем назовите его с входом от /dev/null: это должно убедить ssh-add не имеет никакого терминала и силы для выяснения у пароля с окном GUI.

Вы могли установить SSH_ASKPASS переменная среды для указания на другое приложение для просьбы пароль.

5
ответ дан 23 November 2019 в 07:57

Другие вопросы по тегам:

Похожие вопросы: