penggunaan gnome-keyring-daemon tanpa X

25

Saya bertanya-tanya apakah mungkin menggunakan gnome-keyring-daemon tanpa X. Biasanya ini akan menampilkan prompt grafis untuk mendapatkan kata sandi untuk keyring; apakah ada cara untuk mengatasi ini? Saya ingin dapat menggunakan ubuntu satu tanpa harus memulai sesi grafis dan ketik kata sandi saya.

intuisi
sumber

Jawaban:

11

Anda dapat menggunakan pam_gnome_keyring.sountuk memulai dan membuka kunci daemon. GDM sudah melakukan ini; karena login, Anda harus mengkonfigurasinya secara manual.

Tambahkan baris ini ke /etc/pam.d/login:

auth pam_gnome_keyring.so opsional
sesi opsional pam_gnome_keyring.so auto_start

Jika Anda masuk tanpa kata sandi (SSH dengan Kerberos atau kunci publik), ini mungkin berfungsi: (Saya belum mengujinya)

echo -n "mypassword" | gnome-keyring-daemon --login

(Anda masih perlu menjalankan daemon - baik dimulai melalui PAM atau dengan --daemonize.)

grawity
sumber
Kasus kedua adalah kasus dalam kasus saya. --loginOpsi (tanpa dokumen?) Ini cukup berguna, meskipun saya yakin tidak ingin menyimpan kata sandi saya yang belum di-hack dalam skrip atau meletakkannya di baris perintah. membaca dalam mode yang tidak dikunci dari dalam skrip (non-shell-bahasa) yang kemudian meneruskan input tersebut ke daemon spawned mungkin akan menjadi cara yang baik untuk melakukan ini. Saya hanya harus memulai proses ini sekali per boot, jadi masuk akal untuk mengetikkan kata sandi; Saya hanya perlu dapat melakukannya di baris perintah alih-alih melalui dialog GTK.
intuited
1
err .. tidak apa-apa, ini didokumentasikan oleh gnome-keyring-daemon --help. Saya baru saja memeriksa halaman manual dan / usr / share / doc.
intuited
2
@intuited: Baiklah, lalu lakukan sesuatu seperti ini: read -rsp "Password: " pass; echo -n "$pass" | gnome-keyring-daemon --logindalam sebuah skrip.
grawity
Sebenarnya ya, itu akan berhasil; Saya lupa bahwa gema adalah builtin.
intuited
Sebagai balasan untuk komentar lama dari @intuited: gnome-keyring-daemon --helpmemberi saya gambaran yang bagus, tetapi man gnome-keyring-daemonhanya berisi deskripsi singkat tentang program itu sendiri tetapi tidak ada argumen.
feeela
10

Ringkasan

Pekerjaan yang diperlukan untuk menginstal svn dengan dukungan keyring dan menginstal aplikasi keyab_tool Collabnet sudah dilakukan untuk server Linux kami.

1) Konfigurasikan klien SVN untuk menggunakan keyring:

1.1) Edit ~ / .subversion / config

[auth]
password-stores = gnome-keyring

1.2) Edit ~ / .subversion / server

[global]
store-passwords = yes
store-plaintext-passwords = no

2) Buat keyring untuk kata sandi Anda. Anda akan diminta untuk membuat kata sandi baru untuk membuka kunci keyring; ini mungkin apa saja yang Anda inginkan:

keyring_tool --create=svn

3) Tetapkan keyring baru sebagai default:

keyring_tool --setdef=svn

4) Dalam .bash_profile atau .bash_login (dengan asumsi Anda menggunakan bash sebagai terminal Anda)

    if [ -e /usr/bin/gnome-keyring-daemon ]; then
      if [ ! -z "`kill -0 $GNOME_KEYRING_PID 2>&1`" ]; then
        # Create dbus transport link for SVN to talk to the keyring.
        eval `dbus-launch --sh-syntax`

        # Start the keyring daemon.
        # The use of export here captures the GNOME_KEYRING_PID, GNOME_KEYRING_SOCK
        # env values echoed out at startup.
        export `/usr/bin/gnome-keyring-daemon`
      fi
    fi

5) Di .bash_logout

    # Kill the message bus established for SVN / Keyring communication
    if [ ! -z "`kill -0 $DBUS_SESSION_BUS_PID 2>&1`" ]; then
      kill $DBUS_SESSION_BUS_PID > /dev/null 2>&1
    fi

    # Kill the Gnome Keyring Daemon prior to logout.
    if [ ! -z "`kill -0 $GNOME_KEYRING_PID 2>&1`" ]; then
      kill $GNOME_KEYRING_PID > /dev/null 2>&1
    fi

Latar Belakang

Saya mengalami masalah yang sama ketika mencoba untuk membuat cara bebas repot untuk memastikan akses pengguna yang sah ke repo SVN tertentu di tempat kerja. Pada dasarnya kami harus memaksa pemeriksaan kredensial setiap kali pengguna mengakses server sehingga bahkan perintah pembaruan svn akan memerlukan otentikasi. Jelas penyimpanan kata sandi teks polos keluar sehingga dengan sedikit riset saya datang menggunakan gnome-keyring sebagai cara untuk melecehkan basis pengguna kami dengan permintaan otentikasi konstan sambil tetap menjaga pengguna yang tidak sah dari repositori mereka seharusnya tidak memiliki akses untuk melihat.

Sebagian besar pekerjaan kita sehari-hari dilakukan melalui terowongan ssh ke server RedHat tanpa dukungan X jadi saya harus mencari jalan di sekitar dukungan X11. Setelah beberapa pencarian saya berhasil menemukan cara mengatasinya di sini:

Bahan Sumber

http://support.wandisco.com/index.php?/Knowledgebase/Article/View/362/17/how-to-setup-encrypted-svn-password-storage-using-gnome-keyring-in-an-ssh -sidang

Kunci mereka di sini adalah menggunakan collabnet keyring_tool untuk membuat keyring tanpa klien gnome-keyring-manager dan membuat dbus-launch sendiri daripada membiarkan SVN menangani pengaturan. SVN menggunakan DBUS untuk terhubung ke daemon gnome-keyring dan memengaruhi otentikasi keseluruhan. Dengan memulai dan menghancurkan sesi dbus secara manual dengan -sh-syntax Anda menghindari mencoba terhubung ke klien X pada startup dbus. Jika Anda baru saja memulai gnome-keyring-daemon dan mencoba menggunakan SVN, ia masih akan meminta Anda untuk kata sandi keyring Anda, tetapi kemudian akan meminta Anda untuk kredensial SVN Anda juga. Dbus akan gagal ketika SVN mencoba untuk memulainya karena kurangnya klien X; rupanya SVN tidak menggunakan flag khusus ketika memulai dbus.

Stephen Gray
sumber
Terima kasih banyak untuk ini, telah mencabut rambut saya mencoba menyingkirkan kesalahan "KRITIS **: Kesalahan berkomunikasi dengan gnome-keyring-daemon" pada git pull. Perubahan Anda ke ~ / .profile dan ~ / .bash_logout memperbaiki itu ... Masih tidak menyimpan kata sandi, tetapi saya selangkah lebih dekat! (Ubuntu 16.04.1 LTS)
Chris B
1

Pertama, apa yang benar-benar ingin Anda lakukan adalah menjalankan Ubuntu One secara ketat dari command-line. Lihatlah melalui FAQ Ubuntu One . The FAQ mengatakan itu tidaklah mungkin, tetapi ada beberapa alat CLI seperti u1sdtool dan u1sync . Ada juga satu set FAQ di Ubuntu One di Launchpad; kontennya mungkin sama dengan tautan wiki.ubuntu.com sebelumnya.

Mengenai pertanyaan aktual Anda tentang gnome-keyring-daemon , FAQ menyarankan (1) pengaturan login otomatis dan (2) menyinkronkan kata sandi keyring Anda dengan kata sandi login Anda. Ini (secara teori) akan menghindari prompt kata sandi, tetapi akan membutuhkan setidaknya sesi X dasar untuk dapat berjalan.

Ada bug / wishlist Ubuntu One di Launchpad yang meminta membuatnya lebih mudah untuk menangani sistem tanpa kepala. Rupanya membangun dari sumber direkomendasikan untuk instalasi yang ringan (untuk menghindari kebutuhan semua perpustakaan GUI dan semacamnya). Komentar ini sudah tua, tetapi sangat menarik:

Masalahnya adalah kita menggunakan python-gnomekeyring. Agar kami dapat mendukung tanpa kepala, kita harus beralih ke python-keyring, dan menangani penyimpanan token di tempat lain selain gnome-keyring pada tampilan tanpa kepala. Namun, semua ini tidak akan terjadi untuk kemasan Karmic karena dibekukan, dan perubahan ini tidak akan diterima dalam SRU.

Untuk Lucid, kita harus memiliki layanan autentikasi yang lebih kuat, yang memungkinkan kita untuk mendukung tampilan tanpa kepala lebih baik.

Saya tidak tahu apakah "layanan otentikasi yang lebih tangguh" ini benar-benar diterapkan untuk Lucid; berdasarkan dependensi paket, tampaknya klien Ubuntu One masih bergantung pada python-gnomekeyring.

quack quixote
sumber
0

Saya memiliki beberapa keberhasilan dengan mendapatkan mysql-workbench untuk bekerja dengan gnome-keyring dalam sesi SSH x-forwarded. Ini adalah akun yang menggunakan otentikasi publickey (tanpa kata sandi).

Saya menggunakan dbus-run-session untuk mencapai hal ini setelah terhubung ke sesi ssh:

dbus-run-session bash -c 'GNOME_KEYRING_CONTROL=1 mysql-workbench --verbose'

semoga informasi ini bermanfaat bagi seseorang!

DrGecko
sumber
Ini membantu satu langkah lebih dekat untuk menjalankan mysql-workbench di dalam sebuah buruh pelabuhan dan mengekspor display ke host mac saya. Ketika saya mencoba menambahkan kata sandi ke koneksi baru, itu menunjukkan kepada saya prompt, tetapi setelah mengetik pwd, saya mendapatkan: "Gagal menjalankan program org.freedesktop.secrets: Operasi tidak diizinkan". Ada petunjuk?
Ricardo Pesciotta