Güvenlik & SSL

    GPG ile Dosya ve E-posta Şifreleme Rehberi

    GPG ile anahtar üretimini, dosya şifreleme ve imzalamayı, güvenli iletişimi anlatan uygulamalı rehber.

    12 dk okuma Güncellendi: 10 Temmuz 2026

    Bir yedek dosyasını uzaktaki bir sunucuya gönderirken, hassas bir sözleşmeyi e-postayla iletirken ya da bir API anahtarını meslektaşınızla paylaşırken hep aynı soru dönüp dolaşıp önünüze gelir: "Bu veri yolda ya da karşı tarafta yanlış ellere geçerse ne olur?" İşte GPG (GNU Privacy Guard) tam da bu soruyu ortadan kaldırmak için var. GPG, açık standart olan OpenPGP'nin özgür ve ücretsiz uygulamasıdır; dosyalarınızı öyle bir şifreler ki, doğru anahtara sahip olmayan biri için içerik anlamsız bir bit yığınına dönüşür.

    Bu rehberde GPG'nin temelinde yatan açık/özel anahtar mantığını gündelik bir örnekle oturtacak, kendi anahtar çiftinizi baştan sona üreteceğiz, birinin açık anahtarıyla dosya şifrelemeyi ve imzayla veri bütünlüğünü doğrulamayı adım adım göstereceğiz. Ardından çoğu kişinin atladığı ama en kritik iki konuya, yani anahtar yedeğine ve iptal sertifikasına geçecek, son olarak GPG'yi güvenli yedekleme ve e-posta akışına nasıl oturtacağınızı işleyeceğiz. Komutların tamamı gerçek ve çalışır durumdadır; sırayla takip ederseniz sonunda elinizde kullanıma hazır bir şifreleme düzeni olur.

    GPG Nedir ve Neden İhtiyaç Duyarsınız?#

    GPG, verilerinizi hem gizli (yalnızca alıcı okuyabilir) hem de doğrulanabilir (kimin gönderdiği ve değişip değişmediği belli) hâle getiren bir şifreleme aracıdır. Çoğu Linux dağıtımında gpg komutu zaten kuruludur; masaüstünde Kleopatra, GPG Suite gibi grafik arayüzler de aynı motoru kullanır. Ancak sunucu tarafında ve otomasyonlarda işin kalbi komut satırıdır ve bu rehber de oraya odaklanır.

    GPG'yi diğer basit "parolayla zip'le" yöntemlerinden ayıran şey, iki farklı çalışma modunu bir arada sunmasıdır. Bir yandan tek bir parolayla simetrik şifreleme yapabilir (parolayı bilen herkes açar), diğer yandan asıl gücünü gösterdiği asimetrik modda çalışabilir. Asimetrik modda alıcıya önceden bir parola göndermek zorunda kalmazsınız; bu, güvenlik açısından oyunun kurallarını değiştirir çünkü paylaşılması gereken tek gizli bilgi hiçbir zaman ağ üzerinden dolaşmaz.

    Şu senaryolarda GPG neredeyse standart bir araçtır:

    • Sunucu yedeklerini bulut depolamaya göndermeden önce şifrelemek, böylece depolama sağlayıcısı bile içeriği okuyamaz.
    • E-posta eklerini veya mesaj gövdesini uçtan uca şifreleyerek posta sunucularının erişemeyeceği bir gizlilik katmanı eklemek.
    • Yayımladığınız bir yazılım paketini imzalayıp kullanıcıların paketin sizden geldiğini ve bozulmadığını doğrulamasını sağlamak.
    • Ekip içinde parola, sertifika, özel anahtar gibi sırları güvenle paylaşmak.

    Açık ve Özel Anahtar Mantığı Nasıl Çalışır?#

    Asimetrik şifrelemeyi anlamanın en kolay yolu kilitli posta kutusu benzetmesidir. Herkese açık bir posta kutunuz olduğunu düşünün. Kutunun bir mektup atma yarığı var (herkes buraya mektup atabilir) ve bir de yalnızca sizde bulunan bir anahtarla açılan bir kapağı var. Yarık açık anahtardır: onu istediğiniz kadar çoğaltıp herkese dağıtabilirsiniz, çünkü içeri mektup atmaya yarar ama kutuyu açmaya yaramaz. Kapağın anahtarı ise özel anahtardır: bunu asla kimseyle paylaşmazsınız, çünkü içeri atılan tüm mektupları okuma yetkisini o verir.

    GPG'de tam olarak bu ikili yapı vardır. Bir anahtar çifti üretirsiniz; bu çift, matematiksel olarak birbirine bağlı bir açık anahtar ile bir özel anahtardan oluşur. Biriyle şifrelenen veriyi yalnızca çiftin diğer yarısı çözebilir:

    Yaptığınız işlemKullandığınız anahtarAmaç
    Dosyayı alıcıya şifrelemeAlıcının açık anahtarıYalnızca alıcı açabilsin diye
    Şifreli dosyayı açmaKendi özel anahtarınızİçeriği okuyabilmek için
    Dosyayı imzalamaKendi özel anahtarınızGönderenin siz olduğunu kanıtlamak için
    İmzayı doğrulamaGönderenin açık anahtarıVerinin gerçek ve bozulmamış olduğunu görmek için

    Buradaki kritik ayrım şudur: şifreleme için karşı tarafın açık anahtarını kullanırsınız, imzalama için ise kendi özel anahtarınızı. İlk bakışta kafa karıştırıcı gelse de mantık nettir. Gizlilik istiyorsanız yalnızca alıcının açabileceği bir kilit takarsınız (onun açık anahtarı). Kimliğinizi kanıtlamak istiyorsanız yalnızca sizin sahip olduğunuz bir mühür basarsınız (sizin özel anahtarınız). Bu iki işlem çoğu zaman birlikte yapılır: veriyi hem alıcının açık anahtarıyla şifreler hem de kendi özel anahtarınızla imzalarsınız.

    Bu yaklaşım, sunucuya bağlanırken kullandığınız SSH anahtarlarıyla aynı matematiksel temele dayanır. Anahtar tabanlı kimlik doğrulamanın mantığını daha önce kavradıysanız GPG'ye çok yabancı gelmeyecektir; henüz oralarda değilseniz SSH bağlantısı ve güvenliği rehberi aynı fikri farklı bir açıdan pekiştirir.

    GPG Kurulumu ve Anahtar Çifti Üretme#

    Çoğu sistemde GPG hazır gelir. Kurulu olup olmadığını ve sürümünü şöyle kontrol edersiniz:

    gpg --version
    

    Eğer yüklü değilse dağıtımınıza göre kurabilirsiniz:

    # Debian / Ubuntu
    sudo apt update && sudo apt install gnupg
    
    # RHEL / AlmaLinux / Rocky
    sudo dnf install gnupg2
    
    # macOS (Homebrew)
    brew install gnupg
    

    Artık anahtar çiftimizi üretebiliriz. Modern ve önerilen yol --full-generate-key komutudur çünkü size algoritma ve süre üzerinde tam kontrol verir:

    gpg --full-generate-key
    

    Komut sizi bir dizi soruyla yönlendirir. Anahtar türü olarak varsayılan RSA and RSA ya da daha kısa ve hızlı olan ECC (Curve 25519) seçilebilir. Boyut için RSA seçtiyseniz 4096 bit güvenli bir tercihtir. Geçerlilik süresi kısmında anahtarın hiç sona ermemesi yerine 1-2 yıllık bir süre vermek iyi bir alışkanlıktır; süreyi sonradan her zaman uzatabilirsiniz. Ardından adınızı ve e-posta adresinizi girer, son olarak özel anahtarınızı koruyacak güçlü bir parola cümlesi (passphrase) belirlersiniz.

    Parola cümlesi hayati önemdedir: özel anahtar dosyanız çalınsa bile bu parola olmadan işe yaramaz. Uzun ve tahmin edilmesi zor bir ifade seçin. Anahtar üretimi sırasında sistem rastgelelik (entropy) toplar; sanal bir sunucuda bu süreç uzarsa haveged veya rng-tools gibi araçlar yardımcı olur.

    Üretilen anahtarlarınızı listelemek için:

    gpg --list-secret-keys --keyid-format long
    

    Çıktıda buna benzer bir satır görürsünüz:

    sec   rsa4096/3AA5C34371567BD2 2026-07-10 [SC]
          ABCD1234...KEYFINGERPRINT...9F0
    uid                 Ayşe Yılmaz <[email protected]>
    ssb   rsa4096/42B317FD4BA89E7A 2026-07-10 [E]
    

    Buradaki 3AA5C34371567BD2 sizin anahtar kimliğinizdir (key ID); komutlarda anahtarı belirtmek için bunu ya da e-posta adresinizi kullanabilirsiniz. Uzun fingerprint ise anahtarın parmak izidir ve birinin kimliğini doğrularken en güvenilir referanstır.

    Açık Anahtarları Dışa Aktarma ve Paylaşma#

    Başkalarının size şifreli dosya gönderebilmesi için önce açık anahtarınızı onlara ulaştırmanız gerekir. Açık anahtar gizli değildir; e-postayla, web sitesinde, hatta sosyal medyada bile yayımlayabilirsiniz. Onu okunabilir (ASCII armor) biçimde dışa aktarmak için:

    gpg --armor --export [email protected] > ayse-public.asc
    

    Bu dosya -----BEGIN PGP PUBLIC KEY BLOCK----- ile başlayan düz metindir. Karşı taraf onu içe aktardığında size şifreli veri gönderebilir hâle gelir:

    gpg --import ayse-public.asc
    

    Anahtarı bir anahtar sunucusuna göndererek herkesin erişimine de açabilirsiniz:

    gpg --keyserver hkps://keys.openpgp.org --send-keys 3AA5C34371567BD2
    

    Karşı tarafın kimliğini doğrulamak, bu işin en çok ihmal edilen ama en önemli adımıdır. Birinin açık anahtarını içe aktardığınızda, o anahtarın gerçekten o kişiye ait olduğundan nasıl emin olursunuz? Fingerprint'i güvenilir bir kanaldan (telefon, yüz yüze görüşme) teyit ederek. Doğruladıktan sonra anahtara güven düzeyi atayabilirsiniz:

    gpg --edit-key [email protected]
    # açılan istemcide:
    gpg> trust
    gpg> sign
    gpg> save
    

    Bu adım atlanırsa, saldırgan araya girip size sahte bir açık anahtar verebilir ve siz farkında olmadan veriyi ona şifrelersiniz. Fingerprint doğrulaması bu tuzağı kapatır.

    Dosya Şifreleme ve Şifre Çözme#

    Artık gerçek işe geçelim. Bir dosyayı belirli bir alıcıya şifrelemek için onun açık anahtarını (e-posta veya key ID) -r (recipient) bayrağıyla verirsiniz:

    gpg --encrypt --recipient [email protected] rapor.pdf
    

    Bu komut rapor.pdf.gpg adında ikili (binary) bir şifreli dosya üretir. Sonucu e-postayla paylaşmak istiyorsanız metin tabanlı çıktı için --armor ekleyin; bu sefer rapor.pdf.asc oluşur:

    gpg --armor --encrypt --recipient [email protected] rapor.pdf
    

    Dosyayı aynı anda birden fazla kişiye açık tutmak isterseniz her alıcı için bir -r eklersiniz; böylece hepsi kendi özel anahtarıyla açabilir:

    gpg --armor --encrypt -r [email protected] -r [email protected] sozlesme.docx
    

    Karşı tarafta şifre çözmek çok basittir; GPG dosyanın hangi anahtarla şifrelendiğini kendisi anlar ve doğru özel anahtarı arar:

    gpg --output rapor.pdf --decrypt rapor.pdf.gpg
    

    Bu sırada özel anahtarınızın parola cümlesi sorulur. Çıktı adı vermezseniz GPG içeriği doğrudan ekrana basar, bu yüzden metin dosyaları için --output kullanmak pratiktir.

    Bazen bir dosyayı belirli bir kişiye değil, yalnızca bir parolayla korumak istersiniz (örneğin USB belleğe koyduğunuz kişisel bir arşiv). Bunun için asimetrik anahtar yerine simetrik şifreleme kullanırsınız:

    gpg --symmetric --cipher-algo AES256 arsiv.tar.gz
    

    Komut sizden bir parola ister; dosyayı açacak herkesin aynı parolayı bilmesi gerekir. Bu yöntem hızlı ve pratiktir ama parolayı güvenle paylaşma sorununu geri getirir. Bir başkasına gönderilecek veri için neredeyse her zaman asimetrik yöntem daha güvenlidir.

    Dijital İmzalama ve İmza Doğrulama#

    Şifreleme "içeriği kimse görmesin" sorununu çözer; imzalama ise "bu veri gerçekten senden mi geldi ve yolda değişti mi?" sorusunu yanıtlar. İmza için kendi özel anahtarınızı kullanırsınız, doğrulama içinse alıcı sizin açık anahtarınızı kullanır.

    En yaygın kullanım, dosyanın kendisine dokunmadan yanına ayrı bir imza dosyası üreten ayrık imzadır (detached signature):

    gpg --armor --detach-sign kurulum.tar.gz
    

    Bu, orijinal dosyanın yanına kurulum.tar.gz.asc adında bir imza dosyası koyar. İkisini birlikte dağıtırsınız. Karşı taraf doğrulamayı şöyle yapar:

    gpg --verify kurulum.tar.gz.asc kurulum.tar.gz
    

    Her şey yolundaysa Good signature from "Ayşe Yılmaz <[email protected]>" mesajını görür. Dosya en ufak biçimde değiştirilmişse (tek bir bit bile) doğrulama başarısız olur ve BAD signature uyarısı çıkar. Yazılım dağıtımlarında, yedek arşivlerinde ve önemli belgelerde bu yöntem veri bütünlüğünün altın standardıdır.

    Gizlilik ve kimlik doğrulamayı tek adımda birleştirmek isterseniz şifrele ve imzala işlemini birlikte yaparsınız:

    gpg --armor --sign --encrypt -r [email protected] gizli-not.txt
    

    Bu komutla oluşan dosya hem yalnızca Mehmet tarafından açılabilir hem de açtığında verinin gerçekten sizden geldiğini ve bozulmadığını görebilir. Kurumsal iletişimde en çok tercih edilen kombinasyon budur.

    Anahtar Yedekleme ve İptal Sertifikası#

    Şu ana kadarki her şey, özel anahtarınıza sahip olmanız varsayımına dayanıyor. Peki disk çökerse, sunucu silinirse ya da anahtar dosyanız bozulursa ne olur? Cevap acıdır: o anahtarla şifrelenmiş tüm verilere sonsuza dek erişiminizi kaybedersiniz. Bu yüzden anahtar yedeği isteğe bağlı değil, zorunludur.

    Özel anahtarınızı güvenli bir yere yedeklemek için tam bir dışa aktarma yapın:

    gpg --armor --export-secret-keys [email protected] > ayse-private-backup.asc
    

    Bu dosya adı üstünde özel anahtardır; bir saldırgan ele geçirirse yalnızca parola cümleniz onu korur. Bu yüzden yedeği şifreli bir kasada, çevrimdışı bir USB bellekte veya güçlü bir parolayla korunmuş ayrı bir konumda saklayın. Anahtarın güvenini başkalarına aktarabilmek için gerekli olan sahiplik güven verilerini de yedeklemek isterseniz ~/.gnupg dizininin tamamını arşivleyebilirsiniz:

    tar czf gnupg-backup.tar.gz -C ~ .gnupg
    gpg --symmetric --cipher-algo AES256 gnupg-backup.tar.gz
    rm gnupg-backup.tar.gz
    

    Yedeğin kendisini de simetrik şifreleyip düz hâlini silmek, arşivin çalınsa bile açılamamasını sağlar.

    Yedeğin ikiz kardeşi iptal sertifikasıdır (revocation certificate). Anahtarınız çalınırsa, parolanız sızarsa ya da anahtarı artık kullanmayacaksanız, iptal sertifikası herkese "bu anahtara artık güvenmeyin" demenizi sağlar. Kritik nokta şudur: iptal sertifikasını anahtar hâlâ elinizdeyken ve sağlamken üretmelisiniz, çünkü anahtarı kaybettikten sonra üretemezsiniz:

    gpg --output ayse-revoke.asc --gen-revoke [email protected]
    

    Bu sertifikayı özel anahtar yedeğinizden bile ayrı, çok güvenli bir yerde saklayın. Bir gün gerekirse önce sertifikayı içe aktarıp anahtarı iptal eder, sonra güncellenmiş anahtarı sunuculara ve iletişimde olduğunuz kişilere yayarsınız:

    gpg --import ayse-revoke.asc
    gpg --keyserver hkps://keys.openpgp.org --send-keys 3AA5C34371567BD2
    

    Güvenli Yedeklerde ve E-posta İletişiminde GPG#

    GPG'nin en değerli olduğu yerlerden biri yedek akışlarıdır. Bir veritabanı dökümünü ya da site arşivini uzaktaki depolamaya göndermeden önce şifrelerseniz, o depolamanın güvenliği artık sizin tek savunma hattınız olmaktan çıkar. Klasik bir "sıkıştır, şifrele, gönder" boru hattı şöyle görünür:

    # Veritabanını dök, sıkıştır ve tek geçişte şifrele
    mysqldump -u root -p uygulama_db \
      | gzip \
      | gpg --encrypt --recipient [email protected] \
      > yedek-2026-07-10.sql.gz.gpg
    

    Bu tek satırlık zincirde veri diske hiç düz hâlde yazılmadan doğrudan şifreli olarak dosyaya akar. Bu şifreli dosyayı ister uzak bir sunucuya kopyalayın ister nesne depolamaya atın, içeriği yalnızca [email protected] özel anahtarını taşıyan makine açabilir. Yedekleri artımlı ve verimli biçimde uzağa taşımak için bu dosyaları rsync ile yedekleme yaklaşımıyla senkronlamak yaygın bir düzendir. Kurumsal ölçekte otomatik ve şifreli yedek altyapısı istiyorsanız Clou.TR yedekleme çözümleri bu boru hattını sizin yerinize kurar.

    E-posta tarafında GPG, uçtan uca gizlilik ekler. Posta sunucuları arasındaki TLS trafiği yolda korunur ama mesaj sunucularda düz olarak durur; GPG ile şifrelenmiş bir gövde ise gönderenden alıcıya kadar hiçbir aracının okuyamayacağı biçimde kapalı kalır. Thunderbird gibi istemciler yerleşik OpenPGP desteğiyle bu işi arayüzden hallederken, komut satırında bir metni hızlıca şifreleyip yapıştırabilirsiniz:

    echo "Toplantı parolası: 8Kx!vQ2m" \
      | gpg --armor --encrypt --sign -r [email protected]
    

    Çıkan ASCII bloğu doğrudan e-postaya yapıştırılır. Alıcı kendi istemcisinde ya da gpg --decrypt ile açar. Kendi alan adınızla profesyonel ve güvenli bir posta altyapısı kurmak isterseniz Clou.TR e-posta hizmetleri sağlam bir başlangıç noktasıdır; sunucularınızın genel güvenlik sertleştirmesi içinse sunucu yönetimi hizmeti devreye girer.

    Aşağıdaki tablo, hangi ihtiyaç için hangi GPG modunu seçeceğinizi özetler:

    İhtiyaçYöntemAnahtar
    Belirli kişiye gizli veriAsimetrik şifreleme (--encrypt -r)Alıcının açık anahtarı
    Kişisel arşiv, tek parolaSimetrik şifreleme (--symmetric)Parola cümlesi
    Veri kimden geldi, bozuldu muAyrık imza (--detach-sign)Kendi özel anahtarınız
    Hem gizli hem imzalıŞifrele ve imzala (--sign --encrypt)İkisi birden

    Sıkça Sorulan Sorular#

    GPG ile PGP arasındaki fark nedir?#

    PGP, 1990'larda geliştirilen ticari bir şifreleme yazılımının adıdır ve zamanla OpenPGP adıyla açık bir standarda dönüşmüştür. GPG (GNU Privacy Guard) ise bu OpenPGP standardının özgür, ücretsiz ve açık kaynak uygulamasıdır. Pratikte "PGP anahtarı" ve "GPG anahtarı" aynı standardı ifade eder; GPG ile ürettiğiniz bir anahtar başka bir OpenPGP uyumlu yazılımda da sorunsuz çalışır, dolayısıyla ikisi birbiriyle uyumludur.

    Özel anahtarımın parolasını unutursam ne yapabilirim?#

    Maalesef parola cümlesini kurtarmanın bir yolu yoktur; bu bilinçli bir güvenlik tasarımıdır, çünkü kurtarılabilseydi şifrelemenin bir anlamı kalmazdı. Bu yüzden parolayı güvenli bir parola yöneticisinde saklamak ve anahtarın yedeğini önceden almak hayati önemdedir. Parolayı gerçekten kaybettiyseniz yapabileceğiniz tek şey, önceden ürettiğiniz iptal sertifikasıyla eski anahtarı geçersiz ilan edip yeni bir anahtar çifti oluşturmak ve iletişimde olduğunuz kişilere yeni açık anahtarınızı dağıtmaktır.

    Açık anahtarımı herkese vermek güvenli mi?#

    Evet, açık anahtarın amacı zaten dağıtılmaktır ve onu paylaşmak hiçbir risk taşımaz. Açık anahtar yalnızca size veri şifrelemeye ve imzalarınızı doğrulamaya yarar; onunla kimse sizin özel anahtarınızı türetemez veya şifreli verilerinizi açamaz. Tek dikkat etmeniz gereken, karşı tarafın gerçekten sizin anahtarınızı aldığından emin olması için fingerprint değerinizi güvenilir bir kanaldan teyit edebilmesidir.

    GPG ile hangi dosya türlerini şifreleyebilirim?#

    GPG dosyanın içeriğine bakmaz; ona verdiğiniz her şeyi ham bayt dizisi olarak şifreler. Bu nedenle metin belgeleri, PDF'ler, resimler, veritabanı dökümleri, sıkıştırılmış arşivler ve hatta bütün klasörlerin tar arşivleri dâhil her tür veriyi şifreleyebilirsiniz. Bir klasörün tamamını korumak isterseniz önce tar ile tek bir arşiv dosyasına toplar, ardından o arşivi GPG ile şifrelersiniz.

    Sunucularımda otomatik yedek şifreleme için GPG kullanabilir miyim?#

    Kesinlikle, GPG bu iş için sıkça tercih edilir çünkü parola girmeden çalışan otomasyona uygundur. Bir yedek kullanıcısı için parolasız (ya da parolası ajanla yönetilen) bir anahtar hazırlayıp, döküm alma komutunun çıktısını doğrudan gpg --encrypt ile boru hattına verirsiniz; böylece veri hiç düz hâlde diske yazılmadan şifreli olarak saklanır. Özel anahtarı çözme yetkisini yalnızca güvenli, yetkili bir makinede tutmanız, ele geçirilen bir yedek dosyasının işe yaramaz kalmasını sağlar.

    Kapanış#

    GPG, ilk bakışta karmaşık görünen bir dizi komuttan ibaret sanılsa da, temelinde tek bir sade fikir yatar: açık anahtarla kilitle, özel anahtarla aç, özel anahtarla imzala, açık anahtarla doğrula. Bu dört hareketi kavradığınızda dosyalarınızı güvenle paylaşmak, yedeklerinizi kurcalanamaz hâle getirmek ve e-postalarınızı gerçekten gizli kılmak sıradan bir alışkanlığa dönüşür. En kritik iki adımı, yani anahtar yedeğini ve iptal sertifikasını, her şey yolundayken bugün hazırlarsanız kötü bir gün geldiğinde kendinize teşekkür edersiniz.

    Bu şifreleme düzenini sağlam bir altyapının üstüne kurmak isterseniz Clou.TR yanınızda. Yedeklerinizi güvenle uzağa taşımak için yedekleme hizmetleri, güvenli ve profesyonel posta için e-posta çözümleri, sunucularınızın uçtan uca sertleştirilmesi için sunucu yönetimi ve barındırmadan sunucuya kadar tüm ihtiyaçlarınız için hosting paketleri ile projelerinizi güvenle büyütebilirsiniz. Güvenlik bir ürün değil, bir alışkanlıktır; GPG de o alışkanlığın en güçlü yapı taşlarından biridir.

    ŞifrelemeGüvenlikGPG

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.