GnuPG ile Git kullanımı rehberi (#132) #134

Merged
ooguz merged 2 commits from ooguz/guvenlik:master into master 4 years ago
  1. 1
      src/SUMMARY.md
  2. 108
      src/yazisma_guvenligi/gpg/gpg-git.md
  3. BIN
      src/yazisma_guvenligi/gpg/gpg-git/gitea1.png
  4. BIN
      src/yazisma_guvenligi/gpg/gpg-git/gitea2.png
  5. BIN
      src/yazisma_guvenligi/gpg/gpg-git/gitea3.png
  6. BIN
      src/yazisma_guvenligi/gpg/gpg-git/gitea4.png
  7. BIN
      src/yazisma_guvenligi/gpg/gpg-git/gitea5.png
  8. BIN
      src/yazisma_guvenligi/gpg/gpg-git/github1.png
  9. BIN
      src/yazisma_guvenligi/gpg/gpg-git/github2.png
  10. BIN
      src/yazisma_guvenligi/gpg/gpg-git/github3.png
  11. BIN
      src/yazisma_guvenligi/gpg/gpg-git/github4.png
  12. BIN
      src/yazisma_guvenligi/gpg/gpg-git/github5.png
  13. BIN
      src/yazisma_guvenligi/gpg/gpg-git/gitlab1.png
  14. BIN
      src/yazisma_guvenligi/gpg/gpg-git/gitlab2.png
  15. BIN
      src/yazisma_guvenligi/gpg/gpg-git/gitlab3.png
  16. BIN
      src/yazisma_guvenligi/gpg/gpg-git/gitlab4.png
  17. BIN
      src/yazisma_guvenligi/gpg/gpg-git/gitlab5.png

@ -48,6 +48,7 @@
- [GnuPG Komut Satırı Kullanımı](yazisma_guvenligi/gpg/ucbirim_gpg.md) - [GnuPG Komut Satırı Kullanımı](yazisma_guvenligi/gpg/ucbirim_gpg.md)
- [GnuPG Güven Ağı](yazisma_guvenligi/gpg/wot.md) - [GnuPG Güven Ağı](yazisma_guvenligi/gpg/wot.md)
- [GnuPG Web Anahtar Dizini](yazisma_guvenligi/gpg/wkd.md) - [GnuPG Web Anahtar Dizini](yazisma_guvenligi/gpg/wkd.md)
- [GnuPG ile Git Kullanımı](yazisma_guvenligi/gpg/gpg-git.md)
- [Şifreli E-Posta](yazisma_guvenligi/openpgp.md) - [Şifreli E-Posta](yazisma_guvenligi/openpgp.md)
- [Thunderbird/Enigmail ile E-posta Şifreleme](yazisma_guvenligi/thunderbird_enigmail.md) - [Thunderbird/Enigmail ile E-posta Şifreleme](yazisma_guvenligi/thunderbird_enigmail.md)
- [Kmail ile E-posta Şifreleme](yazisma_guvenligi/kmail.md) - [Kmail ile E-posta Şifreleme](yazisma_guvenligi/kmail.md)

@ -0,0 +1,108 @@
# GnuPG ile Git kullanımı
GnuPG'nin en önemli özelliklerinden biri, imzalama yoluyla bütünlük ve kimlik doğrulaması yapılabiliyor olmasıdır. Bu özelliğinden yararlanmak için GnuPG, Git ile entegre edilebilmekte ve Git commit'leri GnuPG anahtarıyla imzalanabilmektedir. Pek çok Git önyüzü dahili olarak GnuPG destekler.
Git commit'leri GnuPG ile imzalandığında ilgili kodu yazan kişinin gerçekten istenen kişi olduğu doğrulanmış olur ve böylece projeye istenmeyen kodların sokulması veya olası bir giriş bilgilerinin çalınması durumunda projenin sabote edilmesi engellenir.
## GitHub'a GnuPG anahtarının eklenmesi
GitHub üzerinde GnuPG ile imzalanmış commit'lerin gözükmesi için öncelikle GitHub hesabınıza GnuPG anahtarınızı eklemeniz gerekir. Bunun için hesabınıza giriş yaptıktan sonra, sağ üst köşedeki profil fotoğrafınıza tıklayıp, "Settings"e basın.
![GitHub ana sayfa](gpg-git/github1.png)
Ardından açılan ayarlar sayfasında sağdaki menüde bulunan "SSH and GPG Keys" sayfasına gidin.
![GitHub ayarlar](gpg-git/github2.png)
Bu sayfada yer alan "New GPG Key" butonuna basın ve çıkan kutuya GnuPG **açık anahtarınızı** (public key) yapıştırın. Açık anahtarınızı anahtar sunucularından kolayca kopya-yapıştır yapabilir ya da `gpg --export --armor <key-id> | xclip` komutunu çalıştırdıktan sonra orta fare tuşuyla yapıştırabilirsiniz. Ardından "Add GPG Key" butonuna tıklayın.
![GitHub GPG key ekleme](gpg-git/github3.png)
Parolanızı girdikten sonra anahtarınız GitHub hesabınıza eklenecektir.
![GitHub anahtar](gpg-git/github4.png)
Bu noktadan itibaren artık depolara attığınız commitler aşağıdaki gibi doğrulanmış olarak gözükecektir.
![GitHub verified](gpg-git/github5.png)
## GitLab'a GnuPG anahtarının eklenmesi
GitLab'a giriş yaptıktan sonra sağ üst köşedeki profil fotoğrafınıza tıklayıp "Preferences" seçeneğini seçin.
![GitLab giriş](gpg-git/gitlab1.png)
Ardından açılan ayarlar sayfasında sağ tarafta bulunan "GPG Anahtarları" bağlantısına tıklayın.
![GitLab GPG Bağlantı](gpg-git/gitlab2.png)
Gelen sayfada bulunan kutuya GnuPG **açık anahtarınızı** (public key) yapıştırın ve "Anahtar ekle" butonuna basın.
![GitLab anahtar ekleme](gpg-git/gitlab3.png)
Parolanızı girdikten sonra eklenmiş anahtarı görebilirsiniz.
![GitLab anahtar](gpg-git/gitlab4.png)
Bu noktadan itibaren artık commitleriniz aşağıdaki gibi doğrulanmış olarak görünecektir:
![GitLab verified](gpg-git/gitlab5.png)
## Gitea'ya GnuPG anahtarının eklenmesi
Gitea'ya giriş yaptıktan sonra sağ üst köşedeki profil fotoğrafınıza tıklayın ve açılan menüde "Ayarlar" butonuna basın.
![Gitea giriş](gpg-git/gitea1.png)
Ardından açılan ayarlar sayfasında yukarıdaki barda yer alan "SSH/GPG Anahtarları" bağlantısına tıklayın.
![Gitea ayarlar](gpg-git/gitea2.png)
Açılan sayfada "GPG Anahtarlarını Yönet" kısmından "Anahtar ekle" butonuna basın, aşağıda çıkan kutuya **açık anahtarınızı** (public key) yapıştırın.
![Gitea anahtar ekleme](gpg-git/gitea3.png)
Parolanızı girdiğinizde anahtarınız eklenmiş olacaktır.
![Gitea anahtar](gpg-git/gitea4.png)
Bu noktadan itibaren imzalanmış commitleriniz aşağıdaki gibi görünecektir:
![Gitea verified](gpg-git/gitea5.png)
## Git ile commitlerin imzalanması
Git commitlerinizi GnuPG ile imzalamak için öncelikle Git yapılandırmasına imzalama yapacağınız anahtarın ID'sini vermeniz gerekir. GnuPG anahtarınızın ID'sini öğrenmek için aşağıdaki komutu çalıştırabilirsiniz:
`gpg --list-secret-keys --keyid-format LONG`
Şu şekilde bir çıktı almanız gerekir:
```
sec> rsa4096/2D33E2BD3D975818 2017-11-21 [SCA] [son kullanma tarihi: 2022-11-20]
D854D9D85CB4910704BD9C5B2D33E2BD3D975818
Kart seri no. = 0006 09717516
uid [ son derece ] Özgür Yazılım Derneği <bilgi@oyd.org.tr>
ssb> rsa4096/C05499B96147B6F0 2017-11-21 [E] [son kullanma tarihi: 2022-11-20]
```
Burada yer alan `2D33E2BD3D975818` anahtar ID'nizdir.
Aşağıdaki komutu çalıştırarak GnuPG anahtarınızı Git yapılandırmasına ekleyebilirsiniz:
`git config --global user.signingkey 2D33E2BD3D975818` _(kendi anahtar ID'nizle değiştirmeyi unutmayın)_
GnuPG anahtarınız Git yapılandırmanıza eklenmiş oldu. Bu noktadan itibaren, commit atarken `-S` parametresi verdiğinizde commitiniz imzalanacaktır. Örneğin:
`git commit -S -m "Fix #41"`
Eğer tüm commitlerinizin varsayılan olarak imzalanmasını istiyorsanız aşağıdaki komutu çalıştırabilirsiniz:
`git config --global commit.gpgsign true`
Eğer imzalama yapmaya çalıştığınızda GnuPG hata veriyorsa, `gpg` yerine `gpg2` kullanıyor olma ihtimaliniz vardır. Bunu çözmek için aşağıdaki komutu kullanabilirsiniz:
`git config --global gpg.program gpg2`

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Loading…
Cancel
Save