Komut dosyalarında kullanım için terminaldeki anahtarlıktan nasıl şifre alabilirim?


28

LUKSBilgisayarınızda şifreli bir sürücü varsa , Nautilusveya üzerinde küçük bir kilit olan sürücü olarak Nemogösterecektir Devices.

Tıkladığınızda bir şifre girmeniz gerekir. Eğer seçerseniz remember this password forever, bu da anahtarlığınıza kurtulur. Bir sonraki önyükleme, sürücüye tıklandığında hemen monte edilir.

Parolada anahtarlıkta depolanan böyle bir sürücüyü terminalden nasıl derhal bağlarım? Giriş yaptığımda LUKS sürücümü bağlayacak bir autostart komut dosyasına sahip olmak istiyorum. Parolamı komut dosyasında saklamak istemiyorum, parolayı anahtarlıktan kullanmak istiyorum:

Eğer gidersen Passwords And Keys, bir sürü isimsiz anahtar var. Özelliklerinde, gvfs-luks-uuid=xxxxxxxxxxxxbu LUKS sürücünün şifresini ve aynı zamanda şifresini bulabilirsiniz . Ubuntu'nun kullandığı şey budur.

Düşündüğüm seçeneklerden biri python-gnomekeyringancak sadece anahtar adını ve şifreyi bulabilmesi. uuidAnahtar adı her zaman boş olduğundan, belirli bir parolayı bulmak için GUI'nin 'Teknik Ayrıntılar' dediği şeye ihtiyacım var .

Yanıtlar:


29

Şifreyi anahtarlığa kaydetmek ve almak için gizli araçları kullanabilirsiniz .

Yeni bir şifre saklamak için:

secret-tool store --label='Password for mydrive' drive mydrive

Anahtarlıkta nasıl göründüğünü kontrol etmene izin veriyorum. Bakmak için (bu komut betiğinize kolayca eklenebilir):

secret-tool lookup drive mydrive

Gizli aracın sırrının, örnekleri çalışmak için kök olamayacağınız olduğunu unutmayın!
Paul Flint

1
Ölü bağlantı - launchpad.net/ubuntu/+source/libsecret - tl; drapt-get install libsecret-tools
Matthew

9

Bence tek cevap bitti python, ama işleri zorlaştıran iki hata var.

  1. Diğer uygulamaların kullandığı ayrıntıları tanımlamak python sürümünde bulunmadığından , anahtar adlarınızı (Seahorse: Açıklamalar) manuel olarak girmeniz gerekir . Burada bir hata raporu oluşturdum: https://bugs.launchpad.net/ubuntu/+source/gnome-python-desktop/+bug/1144781
  2. Bu açıklamalar, belirli LUKS tuşlarında Seahorse'da boştur, ancak boş açıklamayı değiştirmek aslında anahtar adını değiştirerek python'da aramanızı sağlar. Burada bir hata raporu oluşturdum: https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/1144703

Eğer betikler ve anahtarlıklar ile çalışıyorsanız, lütfen bu böceklerin sizi de etkilediğini belirtin.

Bölüme gelince python, burada bir örnek:

#!/usr/bin/env python

import gnomekeyring as gk

keyring = 'login'
keyItems = gk.list_item_ids_sync(keyring)

for keyItem in keyItems:
    key = gk.item_get_info_sync(keyring, keyItem)
    if  key.get_display_name() == 'KeyName you are looking for':
        # Your script here using key.get_secret()
        print "Password:", key.get_secret()

Başka bir yoldan biliyorsanız, örneğin basit bash komutlarıyla, lütfen bize bildirin.


1
Bir python3 örneği?
Khurshid Alam

2

Python Anahtarlık Lib kullanın

Kabuk betiklerinde kullanım için uygun bir CLI'ye sahiptir.

Kurulum

pip install keyring

Anahtarları ayarlama ve alma

$ keyring set system username
Password for 'username' in 'system':
$ keyring get system username
password
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.