使用 X11 转发从 Ubuntu 18.04 计算机连接到无头 Lubuntu 18.04 计算机。它非常适合不需要 root 权限的应用程序:lxterminal
、leafpad
等。我可以在转发的窗口中顺利运行sudo
命令。lxterminal
但是,synaptic-pkexec
这样的应用程序通常会弹出验证窗口并要求我输入密码,失败,如下所示:
$ synaptic-pkexec
==== AUTHENTICATING FOR com.ubuntu.pkexec.synaptic ===
Authentication is required to run the Synaptic Package Manager
Authenticating as: [my realname],,, ([my username])
Password:
polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized
This incident has been reported.
我提供了正确的密码。
是否有一个设置sshd-config
可以控制这一点?我必须进行哪些更改才能使其正常工作?
答案1
次优解决方案:
使用 X11 转发登录后,运行
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &
之后,synaptic-pkexec
效果很好,客户端计算机上弹出身份验证框并接受我的密码。
但是,您必须在退出 ssh 会话之前终止身份验证代理进程,否则它会挂起。
我从这里得到提示:https://github.com/NixOS/nixpkgs/issues/18012但那里说您可以在服务器上启动身份验证代理。这部分对我来说不起作用,我收到一个错误:
Cannot register authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject
虽然这可行,但是有点笨拙。
希望得到更好的答案。
答案2
sudo -E synaptic-pkexec
和
sudo --preserve-env=HOME synaptic-pkexec
对我来说都有效。