如何通过命令行输入默认密钥环密码?

如何通过命令行输入默认密钥环密码?

有没有办法使用命令行输入默认密钥环密码?

例如:

您有一个设置为自动登录的 Ubuntu 10.10 远程设置。您不想删除密钥环密码。

好的,系统启动并自动登录,然后要求输入密钥环密码,此时您可以创建 ssh 连接,但无法创建远程桌面。

此时您可以做什么来输入密钥环密码?

此外,为了更好地说明,这是使用命令行的远程连接。

答案1

谢谢python-gnomekeyring,这相对容易:

python -c "import gnomekeyring;gnomekeyring.unlock_sync(None, 'my password');"

或者作为一个适当的脚本:

#!/usr/bin/env python
import gnomekeyring
gnomekeyring.unlock_sync(None, 'my password');

我认为您不需要安装该软件包。但尝试一下也无妨。


请记住,将密码存储在硬盘上会带来巨大的安全风险。您应该使用以下方法:

#!/usr/bin/env python

import gnomekeyring
import getpass

gnomekeyring.unlock_sync(None, getpass.getpass('Password: '));

例如,您可以保存此脚本为,unlock-keyring.py然后执行以下操作:

sudo mv unlock-keyring.py /usr/bin/unlock-keyring
sudo chmod a+x /usr/bin/unlock-keyring

从那时起,您只需输入unlock-keyring密码即可。不要对包含密码的版本执行此操作

您可以None用密钥环的名称进行替换,例如'session',如果您想解锁非默认密钥环。


我很难正确地测试它,所以如果它不起作用,请告诉我,我会立即查看。如果它有效,也请告诉我 :-)

答案2

感谢 Stefano!他的回答帮助我解决了一半问题,但我发现该方法默认情况下仅在从本地计算机运行 python 脚本时才有效。如果您在本地运行,则可以访问 Gnome 密钥环。我希望能够通过 SSH 会话运行他的脚本,但一直收到“gnomekeyring.IOerror”,因为密钥环无法访问。经过大量谷歌搜索,我找到了解决方案 @https://ask.fedoraproject.org/en/question/45246/error-communicating-with-gnome-keyring-daemon-in-ssh-session/

为了将该页面提炼为与此情况最相关的部分,请将以下内容添加到您的 .bashrc 脚本中。

# Export $DBUS_SESSION_BUS_ADDRESS when connected via SSH to enable access
# to gnome-keyring-daemon.
if [[ -n $SSH_CLIENT ]]; then
    export $(cat /proc/$(pgrep "gnome-session" -u "$USER")/environ | grep -z "DBUS_SESSION_BUS_ADDRESS=")
fi

值得注意的是,链接中提供的 grep 模式对我来说不起作用,所以我上面的模式略有不同。

答案3

这绝对有效!!

经过多次尝试和错误,我发现旧的 feisty 软件包“pam-keyring”仍然包含“pam-keyring-tool”,您可以使用它从命令行解锁密钥环。Ubuntu 在 feisty 发布后将该工具从软件包中移除,也许是出于安全原因???

它在这里:-

wget https://launchpad.net/ubuntu/+archive/primary/+files/pam-keyring_0.0.8.orig.tar.gz

将其解压到您想要的位置,然后执行以下操作:-

./configure
make

您不需要进行安装,因为您不想在任何时候升级该软件包。

然后编辑登录后配置文件 rc.local,如下所示:-

sudo gedit /etc/rc.local 

exec echo ENTER_YOUR_PASSWORD_HERE | /PATH_TO_PAM_KEYRING_TOOL/pam-keyring-tool --keyring=login -u -s

exit 0

嘿瞧!

相关内容