Bagaimana cara memasukkan kata sandi Keyring Default melalui baris perintah?

12

Apakah ada cara untuk memasukkan kata sandi keyring default menggunakan baris perintah?

Contohnya:

Anda memiliki pengaturan jarak jauh Ubuntu 10.10 yang diatur ke login otomatis. Anda tidak ingin menghapus kata sandi keyring.

Baiklah sistem boot dan login secara otomatis, kemudian meminta kata sandi keyring sekarang pada titik ini Anda dapat membuat koneksi ssh tetapi Anda tidak dapat remote desktop.

Apa yang dapat Anda lakukan untuk memasukkan kata sandi kunci pada titik ini?

Juga, untuk lebih memperjelas, ini dari koneksi jarak jauh menggunakan baris perintah.

Jerkofalltrades
sumber

Jawaban:

10

Berkat python-gnomekeyring , ini relatif mudah:

python -c "import gnomekeyring;gnomekeyring.unlock_sync(None, 'my password');"

Atau sebagai skrip yang tepat:

#!/usr/bin/env python
import gnomekeyring
gnomekeyring.unlock_sync(None, 'my password');

Saya pikir Anda tidak perlu menginstal paket. Tetapi tidak ada salahnya untuk mencoba.


Ingatlah bahwa menyimpan kata sandi Anda di hard disk adalah risiko keamanan yang sangat besar. Anda harus menggunakan ini sebagai gantinya:

#!/usr/bin/env python

import gnomekeyring
import getpass

gnomekeyring.unlock_sync(None, getpass.getpass('Password: '));

Anda dapat menyimpan skrip ini, misalnya, saat unlock-keyring.pydan kemudian lakukan hal berikut:

sudo mv unlock-keyring.py /usr/bin/unlock-keyring
sudo chmod a+x /usr/bin/unlock-keyring

Sejak saat itu, Anda selalu bisa mengetik unlock-keyringdan diminta kata sandi. Jangan lakukan ini dengan versi yang berisi kata sandi Anda .

Anda dapat mengganti Nonedengan nama kunci Anda, misalnya 'session', jika Anda ingin membuka kunci yang bukan default.


Saya kesulitan menguji ini dengan benar, jadi tolong beri tahu saya jika itu tidak berhasil dan saya akan segera melihatnya. Juga beri tahu saya jika itu berhasil :-)

Stefano Palazzo
sumber
1
Paket ini tidak lagi dikirimkan bersama Ubuntu :(
Duka
Berikut adalah beberapa info dari libsecret (digunakan dalam gnome-keyring baru) pria: "Dalam libsecret Anda dapat membuka kunci barang secara langsung, dan hasilnya adalah (dengan daemon gnome-keyring) bahwa koleksi penutup akan dibuka. Tidak mungkin lagi untuk lewat kata sandi untuk membuka kunci pegas. Ini diminta secara otomatis. "
Duka
1

Ini pasti berhasil !!

Setelah banyak percobaan dan kesalahan saya menemukan bahwa paket penuh semangat "pam-keyring" masih berisi "pam-keyring-tool" yang dapat Anda gunakan untuk membuka kunci pegas dari baris perintah. Ubuntu mengeluarkan alat dari paket setelah rilis penuh semangat, mungkin karena alasan keamanan ???

Itu disini:-

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

bongkar di tempat yang Anda inginkan, lalu lakukan: -

./configure
make

Anda TIDAK membuat instalasi karena Anda tidak ingin meng-upgrade paket kapan saja.

kemudian edit ke file konfigurasi masuk postingan rc.local agar terlihat seperti ini: -

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

hai presto!

matthew toft
sumber
1

Terima kasih untuk Stefano! Jawabannya membuat saya setengah jalan, tetapi saya menemukan metode ini, secara default, hanya berfungsi ketika menjalankan skrip python dari mesin lokal. Jika Anda menjalankan secara lokal, Anda memiliki akses ke keyring Gnome. Saya ingin dapat menjalankan skripnya melalui sesi SSH, tetapi terus menerima "gnomekeyring.IOerror", karena keyring tidak dapat diakses. Setelah banyak googling, saya menemukan solusinya @ https://ask.fedoraproject.org/en/question/45246/error-communicating-with-gnome-keyring-daemon-in-ssh-session/

Untuk menyaring halaman itu ke bagian paling relevan yang berlaku untuk situasi ini, tambahkan berikut ini ke skrip .bashrc Anda.

# 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

Tidak ada gunanya pola grep yang disediakan dalam tautan tidak berfungsi untuk saya, jadi yang saya miliki di atas sedikit berbeda.

Robert
sumber
Pada MInt 17.2 saya harus mengubah sesi gnome ke mate-session
frankster