コマンドラインからデフォルトキーリングパスワードを入力する方法は?


12

コマンドラインを使用してデフォルトのキーリングパスワードを入力する方法はありますか?

例えば:

自動ログインに設定されたUbuntu 10.10のリモートセットアップがあります。キーリングパスワードを削除する必要はありません。

システムが起動して自動的にログインし、キーリングパスワードを要求するようになりました。この時点でssh接続を作成できますが、リモートデスクトップはできません。

この時点でキーリングパスワードを入力するにはどうすればよいですか?

また、わかりやすくするために、これはコマンドラインを使用したリモート接続からのものです。

回答:


10

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'、キーリングの名前に置き換えることができます。


これを適切にテストするのに苦労しているので、うまくいかない場合はお知らせください。すぐに確認します。それがうまくいくかどうかも教えてください:-)


1
このパッケージは、もはやのUbuntuに同梱されていません:(
悲しみ

libsecret(新しいgnome-keyringで使用)manからの情報を以下に示します。パスワードを渡してキーリングのロックを解除します。これらは自動的に入力を求められます。」
悲しみ

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

パッケージをどの時点でもアップグレードしたくないので、インストールしないでください。

次に、ログイン後の構成ファイル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

ちょっとプレスト!


1

ステファノに感謝します!彼の答えはそこに私を半分中に連れて行きましたが、デフォルトでは、ローカルマシンから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パターンが役に立たなかったことは何の価値もないので、上記のパターンは少し異なります。


MInt 17.2でgnome-sessionをmate-sessionに変更する必要がありました
フランクスター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.