Terminal tabanlı, kullanıcı odaklı TOTP (Time-based One-Time Password) gizli anahtar yönetim aracı. Google Authenticator ve benzeri OTP uygulamalarıyla tam uyumludur.
- 🔑 İki mod: Sadece OTP anahtarı (
olustur) veya Linux kullanıcısı + OTP (ekle) - 🧑💼 Türkçe karakter desteği: "AYŞE YILMAZ" → "ayseyilmaz" otomatik dönüştürme
- 🖥️ AccountsService entegrasyonu: Oluşturulan kullanıcılar LightDM'de görünür
- 🏷️ Otomatik gruplar: Kullanıcılar 10 farklı gruba otomatik eklenir
- 📱 Terminalde QR kod görüntüleme
- ✅ OTP kodu doğrulama
- 📤 Tekil veya toplu kullanıcı dışa/içe aktarma (
.totpformatı) - 👥 Kullanıcı listeleme ve silme
- 🛡️ Root yetkisi gerektiren işlemler için erişim kontrolü
- 🔒 Gizli anahtarlar
600izniyle/etc/otp-secrets.jsondosyasında güvenle saklanır
- Python 3.6+
- Aşağıdaki Python kütüphaneleri:
pyotp
qrcode
1. Depoyu klonlayın:
git clone https://github.com/kullanici-adi/otp-cli.git
cd otp-cli2. Gerekli bağımlılıkları yükleyin:
pip install pyotp qrcode3. Betiği çalıştırılabilir yapın (isteğe bağlı):
chmod +x otp-cli.pysudo python3 otp-cli.py [komut] [seçenekler]
⚠️ olustur,ekle,sil,iceri-aktarvetumu-iceri-aktarkomutları/etc/otp-secrets.jsondosyasına yazma yaptığından root yetkisi gerektirir.
eklekomutu ayrıca Linux kullanıcısı oluşturduğu için de root yetkisi zorunludur.
| Komut | Açıklama |
|---|---|
olustur <kullanici> |
Sadece OTP anahtarı oluşturur (Linux kullanıcısı yok) |
ekle <kullanici> |
Linux kullanıcısı + OTP anahtarı birlikte oluşturur |
goster <kullanici> |
QR kodu ve gizli anahtarı gösterir |
kod <kullanici> |
Güncel OTP kodunu ve kalan süreyi gösterir |
dogrula <kullanici> <kod> |
Girilen OTP kodunu doğrular |
getir <kullanici> |
Kullanıcının gizli anahtarını görüntüler |
listele |
Kayıtlı tüm kullanıcıları listeler |
sil <kullanici> |
Kullanıcının gizli anahtarını siler |
disari-aktar <kullanici> <dosya> |
Gizli anahtarı .totp dosyasına aktarır |
iceri-aktar <kullanici> <dosya> |
Gizli anahtarı .totp dosyasından yükler |
tumu-disari-aktar <dosya> |
Tüm kullanıcıları tek dosyaya aktarır |
tumu-iceri-aktar <dosya> |
Tüm kullanıcıları dosyadan toplu yükler |
Rastgele gizli anahtar oluşturma:
sudo python3 otp-cli.py olustur tankadoBelirli bir Base32 anahtarı kullanarak oluşturma:
sudo python3 otp-cli.py olustur tankado --anahtar JBSWY3DPEHPK3PXPÖzel bir şifreden anahtar türetme:
sudo python3 otp-cli.py olustur tankado --anahtardan "benim-gizli-sifrem"Türkçe isimle kullanıcı + OTP oluşturma:
sudo python3 otp-cli.py ekle "AYŞE YILMAZ"
# Kullanıcı: ayseyilmaz
# Gruplar: cdrom, audio, video, plugdev, bluetooth, scanner, netdev, dip, lpadmin
# LightDM'de görünürBelirli anahtar ile kullanıcı + OTP:
sudo python3 otp-cli.py ekle "MEHMET DEMİR" --anahtar JBSWY3DPEHPK3PXPÖzel şifre ile kullanıcı + OTP:
sudo python3 otp-cli.py ekle "FATMA ÖZTÜRK" --anahtardan "özel-anahtar"QR kodu terminalde görüntüleme:
sudo python3 otp-cli.py goster tankadoÇıktı olarak terminale ASCII QR kodu, gizli anahtar ve
otpauth://URI'si yazdırılır. Bu QR kodu Google Authenticator, Authy veya benzeri uygulamalarla taranabilir.
Güncel OTP kodunu alma:
python3 otp-cli.py kod tankado
# Çıktı: tankado için Güncel OTP: 482910 (~23 saniye geçerli)OTP kodunu doğrulama:
python3 otp-cli.py dogrula tankado 482910
# Başarılı → çıkış kodu: 0
# Başarısız → çıkış kodu: 1Gizli anahtarı dosyaya yedekleme:
python3 otp-cli.py disari-aktar tankado tankado-yedek.totpGizli anahtarı dosyadan geri yükleme:
sudo python3 otp-cli.py iceri-aktar tankado tankado-yedek.totpTüm kullanıcıları toplu yedekleme:
python3 otp-cli.py tumu-disari-aktar tum-kullanicilar.totpTüm kullanıcıları toplu geri yükleme:
sudo python3 otp-cli.py tumu-iceri-aktar tum-kullanicilar.totp
# Çakışan kullanıcılar varsa onay sorar. Onaysız geçmek için:
sudo python3 otp-cli.py tumu-iceri-aktar tum-kullanicilar.totp --ustune-yazKayıtlı kullanıcıları listeleme:
python3 otp-cli.py listeleKullanıcı silme:
sudo python3 otp-cli.py sil tankado
# Silme öncesi onay istenir.- Gizli anahtarlar
/etc/otp-secrets.jsondosyasında saklanır. Bu dosya otomatik olarakroot:rootsahipliğiyle ve600(rw-------) izniyle ayarlanır; yalnızca root okuyabilir. - Yazma gerektiren tüm komutlar
sudoile çalıştırılmalıdır. .totpyedek dosyaları Base64 kodlamalıdır; şifreleme içermez. Bu nedenle yedek dosyalarınızı güvenli bir ortamda saklayın.- Silme işlemlerinde kullanıcı onayı zorunludur (ya da
--ustune-yazbayrağıyla geçilebilir).
Katkılarınızı bekliyoruz! Lütfen şu adımları izleyin:
- Bu depoyu fork'layın
- Yeni bir dal oluşturun:
git checkout -b ozellik/yeni-ozellik - Değişikliklerinizi commit'leyin:
git commit -m 'Yeni özellik eklendi' - Dalı push'layın:
git push origin ozellik/yeni-ozellik - Pull Request açın
Bu proje MIT Lisansı ile lisanslanmıştır.