Git Güvenliği SSH

Git’in güvenliği için SSH (Secure Shell) sıkça kullanılan bir yöntemdir. SSH, ağ üzerinden güvenli bir şekilde iletişim kurmanın bir yoludur ve Git, projelerinizi uzak sunucularla etkileşimde bulunmak için SSH protokolünü kullanabilir.

SSH Nedir?

SSH, ağ yönetimi, uzaktan dosya aktarımı ve uzaktan sistem erişimi için kullanılan güvenli bir kriptografik ağ protokolüdür.

SSH, kimliği doğrulanmış ve şifrelenmiş bir güvenli ağ protokolü oluşturmak için bir çift SSH anahtarı kullanır. Güvenli olmayan açık ağlarda güvenli uzaktan iletişime olanak tanır.

SSH’nin temel bileşenleri şunlardır:

  1. SSH Client (Istemci) ve Server (Sunucu): SSH istemcisi, uzak bir bilgisayara bağlanmak ve komutlar göndermek için kullanılır. SSH sunucusu, uzak bir bilgisayarın SSH bağlantılarını kabul eder ve istemcilere hizmet verir.
  2. SSH Key (Anahtar): SSH anahtarı, kullanıcı kimliğini doğrulamak için kullanılır. Bir çift halinde gelir: biri public key (genel anahtar), diğeri ise private key (özel anahtar). Public key, diğer kullanıcıların sizin kimliğinizi doğrulamasına izin verirken, private key size erişim sağlar. SSH anahtarları, güvenliği sağlamak için kriptografik algoritmalar kullanarak iletişimi şifreler.
  3. SSH Oturumu: SSH oturumu, istemci ve sunucu arasında güvenli bir iletişim kanalıdır. Bu oturum, komutların gönderilmesi, dosyaların transfer edilmesi ve diğer etkileşimlerin gerçekleştirilmesi için kullanılır. Oturum, SSH protokolü aracılığıyla başlatılır ve güvenlik katmanı (SSH şifreleme protokolü) üzerine inşa edilir.

SSH Key (Anahtar) Çifti Oluşturma

Linux ve Apple için komut satırında ve Windows için Git Bash’te bir SSH anahtarı oluşturabilirsiniz. Örneğin E-mail adresini etiket olarak kullanarak yeni bir anahtar oluşturarak başlayabiliriz:

ssh-keygen -t rsa -b 4096 -C "mail@gelecekkodlarda.com"

Komutu yazdıktan sonra aşağıdaki gibi sizlere bir soru soracaktır. Soruda private anahtar ~/.ssh/id_rsa dosyasına kayıt edeceğini değiştirmek isteyip istemediğinizi sorar. Eğer bu konum sizin için uygunsa, sadece Enter tuşuna basarak devam edebilirsiniz.

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/alkanfatih/.ssh/id_rsa): 

Sonrasından bizden bir şifre belirlememizi isteyecektir. Bilgisayara erişim sağlayan herkesin bu anahtarı parola olmadan kullanmasının engellenmesi için.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Sonuç anahtar çifti başarılı bir şekilde oluşturuldu.

Your identification has been saved in /Users/alkanfatih/.ssh/id_rsa.
Your public key has been saved in /Users/alkanfatih/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:H+AXmSU/+gH0PkMK5yXrp/yAZewdf5fhz3pX+SoUq3s mail@gelecekkodlarda.com
The key's randomart image is:
+---[RSA 4096]----+
|          o .    |
|         . B     |
|        o B *    |
|       . * @..   |
|        S @ *o ..|
|         O +o*..+|
|        . =o+ .o=|
|         ..+E  o*|
|          ++..o++|
+----[SHA256]-----+

Şimdi bu SSH anahtar çiftini SSH-Agent’a ekliyoruz (yukarıdaki dosya konumunu kullanarak):

ssh-add /Users/user/.ssh/id_rsa
Enter passphrase for /Users/user/.ssh/id_rsa: 
Identity added: /Users/user/.ssh/id_rsa (mail@gelecekkodlarda.com)

Parolayı eklediyseniz sizden parolayı girmeniz istenecektir. Artık SSH anahtar çifti kullanıma hazır.

Test Etme

SSH anahtarınızı doğru bir şekilde ekledikten sonra, Git sunucusuna erişim sağlamak için bir komut deneyebilirsiniz. Örneğin, bir projeyi klonlamak için:

git clone git@github.com:kullanici_adi/proje_adi.git

Bu adımları izleyerek, Git sunucusuna SSH anahtarını ekleyebilir ve uzak depolarla güvenli bir şekilde etkileşimde bulunabilirsiniz.

Last Updated : 28/02/2024

Git Ignore

GitHub

2023 © Coding, Developed by alkanfatih.com