Как ввести пароль Keyring по умолчанию через командную строку?

11

Есть ли способ ввести пароль по умолчанию, используя командную строку?

Например:

У вас установлена ​​удаленная настройка Ubuntu 10.10, установленная для автоматического входа в систему. Вы не хотите удалять пароль для брелока.

Все в порядке, когда система загружается и регистрируется автоматически, затем запрашивает пароль для брелока теперь на этом этапе вы можете создавать ssh-соединения, но вы не можете удаленный рабочий стол.

Что вы можете сделать, чтобы ввести пароль для брелока в этот момент?

Кроме того, для лучшего уточнения это происходит из удаленного соединения с использованием командной строки.

    
задан Jerkofalltrades 26.12.2010 в 18:28
источник

3 ответа

9

Благодаря 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' , если вы хотите разблокировать тот, который не является значением по умолчанию.

Мне сложно проверить это правильно, поэтому, пожалуйста, дайте мне знать, если это не сработает, и я сразу посмотрю на него. Также дайте мне знать, если это сработает: -)

    
ответ дан Stefano Palazzo 23.01.2011 в 14:44
1

Это работает определенно !!

После долгих проб и ошибок я обнаружил, что старый фальшивый пакет «pam-keyring» по-прежнему содержит «инструмент pam-keyring-tool», который вы можете использовать для разблокировки ключей из командной строки. Ubuntu вытащил инструмент из пакета после фальшивого выпуска, возможно, из соображений безопасности.

Здесь: -

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

распакуйте его там, где хотите, затем выполните: -

./configure
make

вы НЕ устанавливаете, потому что не хотите, чтобы он обновлял пакет в любой момент.

затем отредактируйте конфигурационный файл post login 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

hey presto!

    
ответ дан matthew toft 11.11.2012 в 23:21
1

Спасибо Стефано! Его ответ получил меня на полпути, но я нашел метод, по умолчанию, работает только при запуске скрипта python с локальной машины. Если вы работаете локально, у вас есть доступ к Gnome keyring. Я хотел иметь возможность запускать его скрипт через сеанс SSH, но продолжал получать «gnomekeyring.IOerror», потому что keyring не был доступен. После долгих поисковых запросов я нашел решение @ Ссылка

Чтобы отделить эту страницу до самой важной части, которая применима к этой ситуации, добавьте следующее к вашему сценарию .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, указанный в ссылке, не работал для меня, поэтому тот, который у меня выше, немного отличается.

    
ответ дан Robert 30.04.2014 в 18:22