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

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

Например:

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

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

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

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

12
задан 23 January 2011 в 14:05

3 ответа

Спасибо Стефано! От его ответа я оказался на полпути, но я обнаружил, что метод по умолчанию работает только при запуске скрипта python с локальной машины. Если вы работаете локально, у вас есть доступ к связке ключей Gnome. Я хотел иметь возможность запускать его скрипт через сеанс SSH, но продолжал получать "gnomekeyring.IOerror", потому что набор ключей не был доступен. После долгих поисков я нашел решение @ https://ask.fedoraproject.org/en/question/45246/error-communicating-with-gnome-keyring-daemon-in-ssh-session/ [ 112]

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

0
ответ дан 23 January 2011 в 14:05

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


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

0
ответ дан 23 January 2011 в 14:05

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

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

эй presto!

0
ответ дан 23 January 2011 в 14:05

Другие вопросы по тегам:

Похожие вопросы: