gnome-keyring-daemon'un X olmadan kullanılması


25

X olmadan gnome-keyring-daemon kullanmanın mümkün olup olmadığını merak ediyorum. Normalde anahtarlık için bir parola edinmek için grafiksel bir bilgi sunacak; bunun bir yolu var mı? Ubuntu one'ı grafiksel bir oturum başlatmak ve şifremi girmek zorunda kalmadan kullanabilmek istiyorum.

Yanıtlar:


11

pam_gnome_keyring.soDaemon'u başlatmak ve kilidini açmak için kullanabilirsiniz . GDM zaten bunu yapıyor; için login, bunu elle yapılandırmanız gerekir.

Bu satırları şuraya ekle /etc/pam.d/login:

isteğe bağlı pam_gnome_keyring.so
oturum isteğe bağlı pam_gnome_keyring.so

Eğer (Kerberos veya kamu tuşlarıyla SSH) şifre olmadan giriş yapıyorsanız, bu olabilir çalışmak: (Ben test etmedim)

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

(Hala çalışmakta olan servise ihtiyacınız var - ya PAM üzerinden ya da ile başlayanlar --daemonize.)


İkinci durum benim durumumdaki durumdur. Bu (belgelenmemiş?) --loginSeçeneği oldukça kullanışlıdır, ancak şifrelenmemiş şifremi bir komut dosyasında saklamak veya bir komut satırına koymak istemem. unhohoed modda (kabuk-olmayan) bir betiğin içinden okumak, daha sonra bu girdiyi doğurulmuş arka plana aktarmak için muhtemelen bunu yapmanın iyi bir yoludur. Bu işlemi önyükleme başına yalnızca bir kez başlatmam gerekiyor, bu yüzden parola yazmak mantıklı; GTK diyalogu yerine komut satırında yapabilmem gerekiyor.
intuited

1
err .. nevermind, belgelenmiştir gnome-keyring-daemon --help. Manpage ve / usr / share / doc sayfasını kontrol ettim.
intuited

2
@intuited: Peki, sonra böyle bir şey yapın: read -rsp "Password: " pass; echo -n "$pass" | gnome-keyring-daemon --loginbir komut dosyasında.
Grawity

Aslında evet, işe yarayacak; Echo'nun bir yerleşik olduğunu unutuyordum.
intuited

@İntuited'ın eski yorumuna cevap olarak: gnome-keyring-daemon --helpbana iyi bir genel bakış sağlar, ancak man gnome-keyring-daemonprogramın kendisi hakkında kısa bir açıklama içerir , ancak argüman yok.
feeela

10

özet

Anahtarlık desteğiyle svn kurulumu ve Collabnet keyring_tool uygulamasını kurmak için gerekli işler Linux sunucularımız için zaten yapılmıştır.

1) SVN istemcisini anahtarlığı kullanacak şekilde yapılandırın:

1.1) ~ / .subversion / config komutunu düzenleyin.

[auth]
password-stores = gnome-keyring

1.2) ~ / aboneliği / sunucuları düzenle

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

2) Şifreniz için bir anahtarlık oluşturun. Anahtarlığın kilidini açmak için yeni bir şifre oluşturmanız istenecektir; bu istediğiniz bir şey olabilir:

keyring_tool --create=svn

3) Yeni anahtarlığı varsayılan olarak ayarlayın:

keyring_tool --setdef=svn

4) .bash_profile veya .bash_login (terminali olarak bash kullandığınızı varsayarsak)

    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) .bash_logout'ta

    # 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

Arka fon

İş yerinde belirli SVN depolarına yetkili kullanıcı erişimi sağlamak için sorunsuz bir yol kurmaya çalışırken de benzer bir sorunla karşılaştım. Temel olarak, bir kullanıcı sunucuya her eriştiğinde, svn update komutu bile kimlik doğrulama gerektirecek şekilde kimlik kontrolünü zorlamamız gerekiyordu. Açıkça anlaşılır şekilde metin şifresi depolaması açıktı, bu yüzden küçük bir araştırmayla, gnome-keyring'i kullanıcı tabanımızı sürekli kimlik doğrulama talepleriyle taciz etmenin bir yolu olarak kullanmaya başladım ve yetkisiz kullanıcıları görmeye yetişmemeleri gerekiyordu.

Günlük işlerimizin çoğu, ssh tünelleri aracılığıyla RedHat sunucusunda X desteği olan bir XHat sunucusuyla yapıldı, bu yüzden X11 desteği etrafında bir yol bulmalıydım. Bazı araştırmalardan sonra, buradaki yolu bulmayı başardım:

Kaynak malzeme

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

Burada anahtar gnome-keyring-manager istemcisi olmadan bir anahtarlık oluşturmak için Collabnet keyring_tool aracını kullanıyor ve SVN'nin kurulumu yönetmesine izin vermek yerine, dbus-launch'ını kendiniz oluşturmak. SVN, gnome-keyring-daemon'a bağlanmak ve genel kimlik doğrulamasını etkilemek için DBUS'yi kullanır. Dbus oturumunu -sh-sözdizimi ile manuel olarak başlatıp yırtarak dbus başlangıcında bir X istemcisine bağlanmayı denemekten kaçınırsınız. Eğer sadece gnome-keyring-daemon'u başlatıp SVN kullanmaya çalışırsanız, hala sizden anahtarlık şifrenizi isteyecek, ancak sizden sonra SVN kimlik bilgilerinizi de isteyecektir. SVN, X istemcisi olmadığından başlatmaya çalıştığında dbus başarısız olacak; Anlaşılan SVN, dbus’u başlatırken herhangi bir özel bayrak kullanmıyor.


Bunun için çok teşekkür ederim, saçımı çekip çekip aldığım bir "KRİTİK **: Gnome-keyring-daemon ile iletişim kurma hatası" ndan kurtulmaya çalışıyorum. ~ / .Profile ve ~ / .bash_logout öğesindeki değişiklikleriniz düzeltildi ... Yine de şifreleri kaydetmiyorum ama bir adım daha yakınım! (Ubuntu 16.04.1 LTS)
Chris B,

1

İlk olarak, gerçekten yapmak istediğiniz şey kesinlikle komut satırından Ubuntu One'ı çalıştırmaktır. Ubuntu One SSS bölümüne göz atın . SSS diyor o anda mümkün değil, ama gibi bazı CLI araçlar vardır u1sdtool ve u1sync . Ayrıca Launchpad'de Ubuntu One'da bir dizi SSS var; içerik önceki wiki.ubuntu.com bağlantısıyla aynı olabilir.

Hakkında gerçek soru ile ilgili olarak gnome-anahtarlık-cini , SSS anlaşılacağı (1) ayarını Otomatik girişin ve giriş şifre ile anahtarlık şifresini senkronize (2). Bu (teoride) şifre istemi önleyeceğini, ancak olurdu en azından temel bir X-session çalıştırıyor olması gerekir.

Launchpad'de başsız sistemlerin kullanılmasını kolaylaştırmayı isteyen bir Ubuntu One hata / dilek listesi var. Görünüşe göre, hafif bir kurulum için kaynaktan bir bina önerilir (tüm GUI kütüphanelerine ve benzerlerine ihtiyaç duymamak için). Bu yorum eski, ancak özellikle ilginç:

Sorun şu ki python-gnomekeyring kullanıyoruz. Başsızları desteklememiz için python-keyring'e geçmemiz ve gnome-keyring'den başkası ekranlarda saklamak için tokenleri kullanmamız gerekecek. Bununla birlikte, bunların hiçbiri donmuş halde olduğu Karmik ambalajı için olmayacak ve bu değişiklik bir SRU'da kabul edilemez.

Lucid için, başsız ekranları daha iyi desteklememizi sağlayacak daha sağlam bir kimlik doğrulama hizmetimiz olmalı.

Bu "daha sağlam kimlik doğrulama servisi" nin Lucid için gerçekten uygulandığını söyleyemem; Paket bağımlılıklarına göre, Ubuntu One istemcisi hala python-gnomekeyring'e bağlı görünüyor.


0

X-forward SSH oturumunda gnome-keyring ile çalışmak için mysql-workbench'i alma konusunda bazı başarılar elde ettim. Bu publickey kimlik doğrulamasını kullanan bir hesaptı (şifre yok).

Dbus-run-session komutunu ssh oturumu ile bir kez bağlandığında kullandım:

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

umarım bu bilgi birisi için yararlıdır!


Bu, mysql-workbench'in liman işçisi konteyneri içinde çalıştırılmasına ve ekranı mac bilgisayarıma aktarmasına bir adım daha yardımcı oldu. Yeni bir bağlantıya şifre eklemeye çalıştığımda, bana bilgi istemi gösteriyor, ancak pwd'yi yazdıktan sonra alıyorum: "org.freedesktop.secrets programı çalıştırılamadı: İşleme izin verilmedi". Herhangi bir ipucu var mı?
Ricardo Pesciotta
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.