При использовании рабочего стола GNOME на Ubuntu, если я использую клиент OpenSSH для соединения с другим компьютером (работающий от терминала гнома), я получаю единственное графическое всплывающее окно, просящее пароль моего закрытого ключа. После этого я больше не должен вводить свой пароль, поскольку он кэшируется агентом SSH.
Под KDE это не работает как этот - когда я запускаю ssh с консоли, я получаю текстовую подсказку для своего пароля каждый раз, даже при том, что ssh-агент работает.
Если я работаю, ssh-добавляют от терминала затем, я могу ввести свой пароль в терминал, и он будет сохранен ssh-агентом, и я не буду получать больше подсказки пароля, в то время как, если я работаю, ssh-добавляют графическую командную строку KRunner (диалоговое окно "Выполнения") затем, я получаю графическую подсказку с тем же поведением. Проблема, я должен не забыть работать, ssh-добавляет каждый раз, когда я вхожу в систему рабочего стола.
Как я могу заставить ssh вести себя под KDE, то же, как это делает на GNOME - в первый раз, когда пароль необходим, всплывающее окно графическое диалоговое окно, и сохраните пароль в агенте.
Я установил ksshaskpass, но это ничего не изменило.
Я не знаю, что внутренности так объясняют, почему в 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
переменная среды для указания на другое приложение для просьбы пароль.