Git’te Uzak Bağlantılar İçin HTTPS Yerine SSH Kullanmak Nasıl Ayarlanır?

Git, yazılım geliştirme dünyasında en popüler versiyon kontrol sistemi olarak kullanılmaktadır. Git ile çalışırken, uzak depolarla bağlantı kurmak için genellikle HTTPS veya SSH kullanılır. Ancak, HTTPS bağlantıları bazen kullanıcı adı ve şifre girme zorunluluğu yaratabilir ve bu da süreçleri yavaşlatabilir. SSH (Secure Shell) ise kimlik doğrulama işlemlerini daha güvenli ve pratik hale getirir.

Bu yazıda, Git’te uzak bağlantılar için HTTPS yerine SSH kullanımını nasıl yapılandıracağınızı adım adım açıklayacağız. SSH ile bağlantı kurarak, her seferinde şifre girmeden daha hızlı ve güvenli bir şekilde Git depolarınıza erişebilirsiniz.

1. SSH Anahtarı Oluşturma

Git ile SSH kullanabilmek için önce bir SSH anahtarı oluşturmanız gerekir. SSH anahtarları, kimlik doğrulama işlemlerinde kullanılır ve her seferinde şifre girme ihtiyacını ortadan kaldırır. Aşağıdaki adımları takip ederek bir SSH anahtarı oluşturabilirsiniz:

  1. Terminal veya komut satırını açın.
  2. Aşağıdaki komutu girerek bir SSH anahtarı oluşturun:
ssh-keygen -t rsa -b 4096 -C "email@example.com"

Burada, “email@example.com” kısmını kendi e-posta adresinizle değiştirin. Bu işlem, SSH anahtar çiftinizi oluşturacak ve onu belirttiğiniz dizine kaydedecektir. Varsayılan olarak, bu dosyalar ~/.ssh/id_rsa ve ~/.ssh/id_rsa.pub olarak adlandırılır.

2. SSH Anahtarınızı Git Sunucusuna Ekleyin

SSH anahtarınızı oluşturduktan sonra, bu anahtarı Git sunucusuna (GitHub, GitLab, Bitbucket vb.) eklemeniz gerekir. Bu işlem, Git istemcisinin SSH üzerinden güvenli bir şekilde bağlanmasını sağlar. İşte GitHub üzerinden SSH anahtarınızı nasıl ekleyeceğiniz:

  1. GitHub hesabınıza giriş yapın.
  2. Sağ üst köşede bulunan profil simgesine tıklayın ve Settings (Ayarlar) sekmesine gidin.
  3. Sol menüde SSH and GPG keys seçeneğine tıklayın.
  4. Yeni bir SSH anahtarı eklemek için New SSH key butonuna tıklayın.
  5. Açılan pencerede, Title kısmına bir isim verin ve Key alanına daha önce oluşturduğunuz SSH anahtarının içeriğini yapıştırın. (Anahtar içeriğini görmek için terminalde cat ~/.ssh/id_rsa.pub komutunu kullanabilirsiniz.)
  6. Add SSH key butonuna tıklayarak işlemi tamamlayın.

Artık SSH anahtarınız GitHub hesabınıza eklenmiş olmalıdır. GitHub, bu anahtarı kullanarak kimliğinizi doğrulamak için her seferinde kullanıcı adı ve şifre sormanızı engelleyecektir.

3. Git Depolarınızın Bağlantısını SSH ile Değiştirme

HTTPS yerine SSH bağlantısını kullanabilmek için mevcut Git deposunun URL’sini değiştirmelisiniz. Bunun için aşağıdaki adımları takip edebilirsiniz:

  1. Öncelikle, Git deposunun bağlantı URL’sini kontrol edin. Bunun için terminalde aşağıdaki komutu kullanabilirsiniz:
git remote -v

Bu komut, uzak depoların HTTPS URL’sini gösterir. Bağlantıyı SSH kullanacak şekilde değiştirmek için şu komutu girin:

git remote set-url origin git@github.com:username/repository.git

Buradaki username kısmını kendi GitHub kullanıcı adınızla ve repository kısmını bağlanmak istediğiniz depo adıyla değiştirmelisiniz.

Artık, bu Git deposuna bağlanırken HTTPS yerine SSH kullanılacaktır. Git bu bağlantıyı SSH anahtarınızla güvenli bir şekilde doğrulayacaktır.

4. SSH Bağlantısının Test Edilmesi

SSH bağlantısının doğru şekilde yapılandırıldığından emin olmak için, aşağıdaki komutla bağlantıyı test edebilirsiniz:

ssh -T git@github.com

Bu komut, GitHub ile olan SSH bağlantınızı doğrular. Eğer bağlantı başarılıysa, aşağıdaki gibi bir mesaj alırsınız:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

Eğer bu mesajı görüyorsanız, bağlantınız başarılı bir şekilde kurulmuş demektir.

5. SSH Anahtarını Yönetme

Birden fazla cihazda çalışıyorsanız, her cihaz için ayrı SSH anahtarları oluşturmanız gerekebilir. SSH anahtarlarını yönetmek için şunları yapabilirsiniz:

  • Yeni bir SSH anahtarı oluşturmak için ssh-keygen komutunu tekrar kullanabilirsiniz.
  • SSH anahtarlarını ~/.ssh dizininde saklayarak, her cihazda doğru anahtarı kullanmak için ~/.ssh/config dosyasını yapılandırabilirsiniz.

Bu dosya, birden fazla SSH anahtarını ve bağlantı ayarlarını yönetmek için kullanışlıdır. Örneğin, aşağıdaki gibi bir yapılandırma ile her cihazda farklı anahtarlar kullanabilirsiniz:

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa

Sonuç

Git’te uzak bağlantılar için HTTPS yerine SSH kullanmak, güvenliği artırırken aynı zamanda kullanıcı deneyimini iyileştirir. Bir defaya mahsus olarak SSH anahtarı oluşturduktan sonra, her Git işlemi için şifre girme zorunluluğundan kurtulabilirsiniz. Ayrıca, SSH bağlantıları daha güvenli ve daha hızlıdır.

Bu yazıda, Git ile SSH kullanarak HTTPS bağlantılarının nasıl değiştirileceğini ve SSH anahtarlarının nasıl yapılandırılacağını adım adım açıkladık. Şimdi, SSH ile Git kullanmanın avantajlarından faydalanabilir ve iş akışınızı hızlandırabilirsiniz.

İpuçları ve Ekstra Bilgiler

  • GitHub, GitLab ve Bitbucket gibi platformlar, SSH anahtarlarını kolayca ekleyebilmeniz için web arayüzü sunar.
  • SSH anahtarınızı başka bir cihaza kopyalamak için ssh-copy-id komutunu kullanabilirsiniz.
  • SSH bağlantısını her zaman güvenli bir şekilde saklayın ve özel anahtarınızı kimseyle paylaşmayın.