3.3 KiB
lxqt-openssh-askpass
Overview
lxqt-openssh-askpass
is a GUI to query credentials on behalf of other programs. As indicated by its name it's primarily targeted at ssh-agent
, the SSH agent of OpenSSH, but it works with other applications like e. g. EncFS as well.
It was considered to abandon the tool in favour of KDE's ksshaskpass
and lxqt-openssh-askpass had temporarily been declared deprecated for this reason. But it turned out the close bond of ksshaskpass
to KWallet conflicts with LXQt's design goals so it's all but certain the replacement will happen. See https://github.com/lxde/lxqt/issues/362.
Installation
Compiling source code
The only runtime dependency is liblxqt.
Additional build dependencies are CMake and optionally Git to pull latest VCS checkouts. The localization files were outsourced to repository lxqt-l10n so the corresponding dependencies are needed, too. Please refer to this repository's README.md
for further information.
Code configuration is handled by CMake. CMake variable CMAKE_INSTALL_PREFIX
has to be set to /usr
on most operating systems.
To build run make
, to install make install
which accepts variable DESTDIR
as usual.
Binary packages
Official binary packages are provided by all major Linux distributions like Arch Linux, Debian (as of Debian stretch only), Fedora and openSUSE. Just use your package manager to search for string lxqt-openssh-askpass
.
Configuration, Usage
ssh-agent
First of all it must be ensured ssh-agent
is running in LXQt sessions. This is basically beyond this document's scope but can e. g. be achieved by a user systemd unit
[Unit]
Description=Some arbitrary description
[Service]
Type=forking
ExecStart=/usr/bin/ssh-agent -a /run/user/<ID>/ssh-agent
[Install]
WantedBy=default.target
where ID corresponds with the respective user's UID as displayed by $ id <user>
.
Environment variable SSH_AUTH_SOCK
must point to the socket of ssh-agent
as e. g. stated by option -a
in the systemd unit depicted above. Environment variable SSH_ASKPASS
must be set to lxqt-openssh-askpass
to indicate this binary should be used.
Both variables can be set in section "Environment (Advanced)" of configuration dialogue LXQt Session Settings of lxqt-session. Changes apply upon the next login only.
Note binary ssh-add
which is used to register keys with ssh-agent
will use GUI tools like lxqt-openssh-askpass
only when it is not attached to a terminal.
So lxqt-openssh-askpass
will not be used when ssh-add
is launched from a terminal emulator like QTerminal even when everything is configured as stated above. lxqt-openssh-askpass
will be used when the invocation of ssh-add
is handled by an autostart entry which can be configured in section "Autostart" of "LXQt Session Settings" or when a desktop entry file is used to invoke the tool from menus.
EncFS
Simply hand lxqt-openssh
to binary encfs
by option --extpass
, like in encfs --extpass=lxqt-openssh-askpass <rootdir> <mount point>
.
In contrast to ssh-{agent,add}
this works when encfs
is launched from a terminal emulator, too.