有没有办法使用命令行输入默认的密钥环密码?
例如:
您已将Ubuntu 10.10的远程设置设置为自动登录。您不想删除钥匙圈密码。
好的,系统会启动并自动登录,然后立即要求输入密钥环密码,此时您可以创建ssh连接,但不能远程桌面。
此时,您该怎么办才能输入密钥环密码?
另外,为了更好地说明这一点,它来自使用命令行的远程连接。
有没有办法使用命令行输入默认的密钥环密码?
例如:
您已将Ubuntu 10.10的远程设置设置为自动登录。您不想删除钥匙圈密码。
好的,系统会启动并自动登录,然后立即要求输入密钥环密码,此时您可以创建ssh连接,但不能远程桌面。
此时,您该怎么办才能输入密钥环密码?
另外,为了更好地说明这一点,它来自使用命令行的远程连接。
Answers:
多亏了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'
,如果您想解锁不是默认密码的名称。
我很难正确地进行测试,因此请告诉我它是否无效,我将立即进行查看。还请让我知道它是否有效:-)
这绝对有效!!
经过反复试验,我发现旧的“ pam-keyring”软件包仍然包含“ pam-keyring-tool”,可用于从命令行解锁密钥环。ubuntu发布后,Ubuntu从工具包中删除了该工具,也许出于安全原因???
它在这里:-
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
嘿!
感谢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模式对我不起作用是毫无价值的,因此我上面所提到的模式略有不同。