GPG ile Komut Satırında işlemler
- Şifreleme ve İmzalama
- Simetrik şifreleme
- İmzalama
- İmza denetleme
- Umumi anahtarları listeleme
- Özel anahtarları listeleme
- İmzaları listeleme
- Anahtar imzalarını kontrol etme
- Umumi anahtar dışa çıkartma
- Sunucuda anahtar arama
- Sunucuya anahtar gönderme
- Anahtarları güncelleme
- Anahtar içe aktarma
- Anahtar düzenleme
- Anahtar imzalama
GPG temel olarak komut satırında çalışan bir yazılımdır. Bu bakımdan grafik arayüzler tarafından sunulmayan pek çok faydalı özelliği uçbirim aracılığı ile kullanmak ve kimi zaman grafik arayüzlerin sunduğu işlevleri daha kolay yerine getirmek mümkündür. Pek çok kullanıcı için uçbirim korkutucu olabilmektedir. Lakin her Gnu/Linux cihazda bir uçbirim ve GPG kurulu olduğu düşünüldüğünde GPG'nin evrensel kullanımı uçbirimde toplanmaktadır.
GPG'nin man sayfası çok kalabalıktır. Bu rehberde son kullanıcıya lazım olabilecek temel ve orta seviyedeki işlevler ipuçları ile birlikte sunulacaktır. Şayet GPG ile ilgili daha çok şey öğrenmek istenirse aşağıdaki komut ile man sayfasının okunması veya pratik olarak yardım sayfasının çağrılması mümkündür.
man gpg
ve gpg --help
Şifreleme ve İmzalama
Uçbirim aracılığı ile e-posta şifreleme, imzalama ve deşifre rehberine bu başlıktaki detaylar için başvurulabilir.
Simetrik şifreleme
GPG sadece RSA ve ECC gibi asimetrik şifreleme algoritmalarını değil aynı zamanda AES gibi simetrik şifreleme imkanlarını da sunmaktadır. Bu şifreleme yönteminde bir parola hem şifreleme hem deşifre için kullanıldığından özel bir anahtar yönetimine ihtiyaç duyulmaz ve kimi zaman kullanımı tercih edilebilir.
Bir mesajı veya dosyayı simetrik olarak şifrelemek için aşağıdaki komutları kullanabilirsiniz:
gpg --symmetric --armor
veya gpg -ca
Bir dosyayı şifrelemek isterseniz aşağıdaki komutu girebilirsiniz. GPG şifrelenmiş dosyayı .asc uzantısı ile aynı yere kaydedecektir:
gpg --symmetric --armor [dosya dizini]
Şifrelediğiniz veriyi aynı zamanda bir anahtarınız var ise imzalayarak sizden geldiğine ve bütünlüğüne kanıt oluşturabilirsiniz.
gpg --symmetric --sign --armor
veya gpg -csa
İmzalama
GPG birden fazla şekilde imzalama yapabilmektedir. Her imzalama tipi iletim ve gereken karakter bakımından farklılık arz ettiğinden kullanıcının beklentisine göre tercih yapması mümkündür.
Clear-sign
Clear-sign veya açık imza imzalanan içeriğin okunabilmesine imkan sağlamaktadır. Bu sayede mesajınız gözle okunabilirken dileyen biri altında bulunan imza bloğu ile birlikte mesajınızın doğruluğunu denetleyebilmektedir. Bu şekilde bir mesaja imza atmak isterseniz aşağıdaki komutu girip mesajınızı yazın ve ctrl + D
komutu ile sonlandırın.
gpg --clear-sign
Embeded-sign
Embeded veya gömülü imza, mesaj ve imza bloğunun tek bir base64 bloğunda kodlanması ile ortaya çıkar. Bu mesaj şifreli olmamakla birlikte okunabilmesi için yine de çözülmesi gereklidir. Bu şekilde bir imza elde etmek için aşağıdaki komutu girip mesajınızı yazın ve ctrl + D
komutu ile sonlandırın.
gpg --sign --armor
Detached-sign
Detached veya ayrık imza, imzalanan veri ile imza bloğunun ayrı dosyalar olması anlamına gelmektedir. Çoğunlukla dijital verilerin doğruluğunu göstermek için kullanır. Dosyanın yanında aynı isimde .sig uzantılı imza dosyası da gelir. Bu tip bir imza oluşturmak için aşağıdaki komutu kullanabilirsiniz. GPG imza dosyasını imzalanan dosyanın yanına .sig uzantısı ile ekleyecektir.
gpg --detached-sign [dosya dizini]
Şayet imzayı metin olarak aktarmayı düşünüyorsanız --armor
parameteresini ekleyerek base64 kodlama ile aynı işlemi gerçekleştirebilirsiniz.
gpg --detached-sign --armor [dosya dizini]
İmza denetleme
GPG ile imzalanmış bir metni doğrulamak için aşağıdaki komutu kullanıp mesajı yapıştırdıktan sonra ctrl + D
komutu ile işlemi tamamlayabilirsiniz.
gpg --verify
Şayet bir dosyaya ait .sig uzantlı imzayı denetleyecekseniz ve dosya ile imza dosyasının adı aynı ise aşağıdaki komutu kullanabilirsiniz.
gpg --verify [imza dosyası.sig]
Umumi anahtarları listeleme
GPG kullanımı iletişime geçeceğiniz kişilerin umumi anahtarlarını da bulundurmanızı gerektirmekte. Bu anahtarlar bir fihrist gibi cihazınızda tutulmaktadır. Bunları listelemek için aşağıdaki komutu kullanabilirsiniz.
gpg --list-keys
Anahtarlığınızdaki belirli bir anahtarı arıyor iseniz aşağıdaki şekilde arama yapabilirsiniz.
gpg --list-keys [anahtar ID veya e-posta]
Özel anahtarları listeleme
Şayet size ait özel anahtarlarınızı listelemek isterseniz aşağıdaki komutu kullanabilirsiniz.
gpg --list-secret-keys
İmzaları listeleme
Şayet bir anahtara atılmış olan imzaları görüntülemek isterseniz aşağıdaki komutu kullanabilirsiniz.
gpg --list-sigs [anahtar ID veya e-posta]
Anahtar imzalarını kontrol etme
Bir anahtardaki imzaları görüntülemek yerine bu imzalar arasında WOT ile güven ağı doğrulaması yapmak isterseniz aşağıdaki komut ile anahtarlığınızdaki umumi anahtarlarla atılı imzalar arasında bir bağlantı olup olmadığını denetleyebilirsiniz.
gpg --check-signatures [anahtar ID veya e-posta]
Umumi anahtar dışa çıkartma
Kendi anahtarınıza veya bir başka kişiye ait umumi anahtarı bir amaçla kullanmak veya bir yere göndermek için dosyaya kaydetmek isterseniz aşağıdaki komutu kullanabilirsiniz. Şayet bu anahtarın basılabilir olmasını isterseniz --armor
parametresini verebilirsiniz. Bu durumda çıktı ASCII karakterlerle yazdırılacaktır.
gpg --export [anahtar ID veya e-posta] > [anahtar dosya yolu]
Sunucuda anahtar arama
Pek çok GPG anahtarı anahtar sunucularında aleni olarak tutulur. Bu anahtar rehberlerinde belirli bir anahtarı, ismi veya e-postayı aramak mümkündür. Bu aranan anahtarın iddia edilen kişi veya e-postaya ait olduğunu göstermese de anahtar keşfini kolaylaştırmaktadır. Anahtarı doğrulamak için güven ağından faydalanmak veya harici kaynaklardan bu anahtarı doğrulamak gereklidir. Bir anahtar sunucunda anahtar aramak için aşağıdaki komutu kullanabilirsiniz.
gpg --search [anahtar ID veya e-posta]
Bu GPG yapılandırmanızda belirli olan anahtar sunucusunu kullanacaktır. Kimi zaman Protonmail anahtar sunucusunda arama yapmak gibi belirli bir sunucuda arama yapmak isteyebilirsiniz. Bu durumda --keyserver
parametresi ile sunucu adresi belirtmeniz gereklidir.
gpg --search --keyserver [sunucu adresi] [anahtar ID veya e-posta]
Sunucuya anahtar gönderme
Bir umumi anahtarı imzaladıktan veya bir değişiklik yaptıktan sonra anahtar sunucusuna göndermek için aşağıdaki komutu kullanabilirsiniz. Anahtar aramasında olduğu gibi belirli bir sunucuya göndermek için --keyserver
parametresini anahtar sunucusunun adresi ile takip ederek işlem yapabilirsiniz.
gpg --send-key [anahtar ID veya e-posta]
Anahtarları güncelleme
Anahtarlığınızdaki tüm anahtarları, imza değişiklikleri veya iptaller gibi durumlar açısından güncellemek isterseniz aşağıdaki komutu kullanabilirsiniz. Belirli bir anahtar sunucusunu kullanmak için --keyserver
parametresini kullanabilirsiniz.
gpg --refresh-keys
Belirli bir anahtarı güncellemek için aynı komutu bir anahtar belirteci ile çalıştırabilirsiniz.
gpg --refresh-keys [anahtar ID veya e-posta]
Anahtar içe aktarma
Dosya olarak edindiğiniz bir anahtarı anahtarlığınıza eklemek için aşağıdaki komutu kullanabilirsiniz.
gpg --import < [anahtar dosya yolu]
ASCII armor şeklinde kopyaladığınız anahtarları bir dosyaya yazmadan doğrudan GPG anahtarlığınıza ekleyebilirsiniz. bunun için basitçe gpg --import
komutunu çalıştırın CTRL + ALT + V
ile anahtar metnini yapıştırıp ardından CTRL + ALT + D
kombinasyonuna iki kere basarak içe aktarma işlemini tamamlayın.
Anahtar düzenleme
GPG anahtarları üretildikten sonra üzerlerinde çeşitli değişiklikler yapılabilmekte. Bunlar arasında iptal tarihi uzatmaları, imzalamalar, parola değişimleri gibi işlemler bulunmakta. Aşağıdaki komut ile herhangi bir anahtar üzerinde değişiklik yapmak için gerekli menüyü açabilirsiniz.
gpg --edit-key [anahtar ID veya e-posta]
Bu komutu çalıştırmanız ardından o anahtara ilişkin anahtara ilişkin bilgiler ve e-posta adresleri çıkacaktır.
gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Secret key is available.
sec rsa4096/42272957268B3FCA
created: 2016-10-26 expires: 2021-10-29 usage: C
card-no: 0006 08567377
trust: ultimate validity: ultimate
ssb rsa4096/6619345C6DF49077
created: 2016-10-26 expires: 2021-10-29 usage: E
card-no: 0006 10145476
ssb rsa4096/471A839AB4DD8E6D
created: 2016-10-26 expires: 2021-10-29 usage: S
card-no: 0006 10145476
ssb rsa4096/B3FFE58F10352423
created: 2016-10-26 expires: 2021-10-29 usage: A
card-no: 0006 10145476
[ultimate] (1). Alper Atmaca <info@alperatmaca.com.tr>
[ultimate] (2) Alper Atmaca <alperatmaca@riseup.net>
[ultimate] (3) Alper Atmaca <alperatmaca@gmail.com>
[ultimate] (4) Alper Atmaca <alper@oyd.org.tr>
[ultimate] (5) Alper Atmaca (alperatmaca@gmail.com) <alperatmaca@gmail.com>
Şayet açılan kabuktan help
komutunu yazmanız ile kullanabileceğiniz seçenekler listelenecektir.
gpg> help
quit quit this menu
save save and quit
help show this help
fpr show key fingerprint
grip show the keygrip
list list key and user IDs
uid select user ID N
key select subkey N
check check signatures
sign sign selected user IDs [* see below for related commands]
lsign sign selected user IDs locally
tsign sign selected user IDs with a trust signature
nrsign sign selected user IDs with a non-revocable signature
adduid add a user ID
addphoto add a photo ID
deluid delete selected user IDs
addkey add a subkey
addcardkey add a key to a smartcard
keytocard move a key to a smartcard
bkuptocard move a backup key to a smartcard
delkey delete selected subkeys
addrevoker add a revocation key
delsig delete signatures from the selected user IDs
expire change the expiration date for the key or selected subkeys
primary flag the selected user ID as primary
pref list preferences (expert)
showpref list preferences (verbose)
setpref set preference list for the selected user IDs
keyserver set the preferred keyserver URL for the selected user IDs
notation set a notation for the selected user IDs
passwd change the passphrase
trust change the ownertrust
revsig revoke signatures on the selected user IDs
revuid revoke selected user IDs
revkey revoke key or selected subkeys
enable enable key
disable disable key
showphoto show selected photo IDs
clean compact unusable user IDs and remove unusable signatures from key
minimize compact unusable user IDs and remove all signatures from key
* The 'sign' command may be prefixed with an 'l' for local signatures (lsign),
a 't' for trust signatures (tsign), an 'nr' for non-revocable signatures
(nrsign), or any combination thereof (ltsign, tnrsign, etc.).
Bir anahtar üzerinde işlem yapmak için key [anahtar numarası]
şeklinde seçim yapabilirsiniz. Benzer şekilde bir e-postaya bağlı kullanıcı kimliği seçmek için de uid [UID numarası]
komutunu kullanabilirsiniz. Bunu yapmanız üzerine ilgili öğenin yanında *
işareti çıkacaktır.
[ultimate] (1)* Alper Atmaca <info@alperatmaca.com.tr>
ssb* rsa4096/6619345C6DF49077
created: 2016-10-26 expires: 2021-10-29 usage: E
Seçili öğeler üzerinde menüde çıkan işlemleri dilediğiniz gibi gerçekleştirebilirsiniz. Değişiklikleri kaydetmek için save
komutunu kullanarak işlemi sonlandırabilir veya quit
komutu ile değişiklikleri kaydetmeden çıkabilirsiniz.
Anahtar imzalama
Tanıdığınız ve güvendiğiniz bir kişinin anahtarının o kişiye ait olduğunu kanıtlamak için kişinin anahtarını kendi anahtarınız ile imzalayabilirsiniz. Bunu yaptığınızda kişiyi kendi güven ağınıza dahil edersiniz. Bu güveni fiilen tanıştığınız ve gerçek kimliğini bildiğiniz kişilere vermeniz kendi güven ağınızdaki diğer kişiler açısından çok önemlidir. Sizin güvendiğiniz kişiye diğer kişiler de otomatik olarak güvenecektir.
Bir kişinin anahtarını imzalamak için aşağıdaki komutu çalıştırıp karşınıza gelen mesajları takip edebilirsiniz.
gpg --sign-key [anahtar ID veya e-posta]