![如何通过命令行输入默认密钥环密码?](https://linux22.com/image/807304/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%BE%93%E5%85%A5%E9%BB%98%E8%AE%A4%E5%AF%86%E9%92%A5%E7%8E%AF%E5%AF%86%E7%A0%81%EF%BC%9F.png)
有没有办法使用命令行输入默认密钥环密码?
例如:
您有一个设置为自动登录的 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
嘿瞧!