Selam bu yazıda Bitbucket için ssh key oluşturmayı göstereceğim. Git ile çalışırken sürekli authentication işlemlerinden sıkıldıysanız bu yazı tam size göre.
Bir kere ayarlamaları yapalım ve sonrasında kafamız rahat bir şekilde çalışalım.
Her ne kadar BitBucket olarak belirtsem de farklı Git servisleri için de benzer işlemleri uygulayabilirsiniz.
İşlemleri MacOS işletimine sahip cihaz için anlatacağım, Windows için de sisteminize Git Bash yükleyerek benzer adımlar uygulanabilir.
OpenSSH
Mac cihazlarda OpenSSH yüklü bir şekilde gelmesi gerek. Kontrol etmek için;
ssh -V
OpenSSH yüklü ise aşağıdaki şekilde bir çıktı almanız gerekiyor.
OpenSSH_8.6p1, LibreSSL 3.3.6
Eğer yüklü değilse:
brew install openssh
SSH anahtar çiftini oluşturma
Aşağıdaki komutla çalıştıracağınız SSH anahtarları bulunduğunuz dizinde oluşturulur. Bu sebeple kök dizindeki .ssh
dizinine gidelim, böyle bir klasör yoksa oluşturabilirsiniz.
cd ~/.ssh
SSH anahtarı oluşturmak için aşağıdaki koddan faydalanabilirsiniz.
ssh-keygen -t ed25519 -b 4096 -C "{username@emaildomain.com}" -f {ssh-key-name}
Burada;
username@emaildomain.com
BitBucket’ta kullandığınız mail adresi. (Farklı bir git servisi kullanıyorsanız orada kayıtlı olan mail adresiniz.)
ssh-key-name
ise anahtarlar için oluşacak dosya ismi.
Komutu çalıştırdığınızda sizden bir parola girmenizi isteyecek. Kişisel tavsiyem eğer sizden başkası bilgisayarınızı kullanmıyorsa burayı boş bırakarak enter diyerek geçmeniz. Aksi taktirde git push, git pull, git fetch gibi komutlar kullandığınızda SSH sizden bu parolayı girmenizi isteyecek. Burada parola belirlemek cihaza erişimi olan diğer kullanıcıların anahtarlarınızı kullanmasını engeller.
İşlem tamamlandığında ssh-keygen 2 farklı dosya oluşturacak.
{ssh-key-name}
— private key.{ssh-key-name}.pub
— public key.
Oluşturulan SSH keyi SSH Agent’a ekleme.
SSH anahtarını SSH aracınıza (ssh-agent) eklemek için:
ssh-key-name} özel anahtarın adıyla değiştirerek aşağıdaki komutu çalıştırın:
ssh-add ~/.ssh/{ssh-key-name}
Bitbucket’e bağlanırken doğru SSH anahtarının kullanıldığından emin olmak için SSH yapılandırma dosyanızı (~/.ssh/config)
aşağıdaki şekilde güncelleyin eğer config dosyası yoksa oluşturun:
Host bitbucket.org
AddKeysToAgent yes
IdentityFile ~/.ssh/{ssh-key-name}
Bitbucket’a SSH Anahtarı Tanıtma
SSH anahtarlarımızı oluşturduktan sonra Bitbucket içerisinde bunu tanıtmamız gerekiyor. Bunun için;
- Settings altındaki Personal Settings kısmına geliyoruz. (Avatar kısmının altında bulunuyor.)
- Security kısmı altında SSH keys alanını seçiyoruz.
- Add key seçiyoruz.
- Çıkan pencerede Label kısmınatanımlayıcı herhangi bir başlık bilgisi girerek Key* kısmına oluşturduğunuz anahtar çiftlerinden .pub olan dosyanın içeriğini yapıştırarak Add key seçiyoruz.
- Bunun için aşağıdaki kodu kullanabilirsiniz
cat ~/.ssh/{ssh-key-name}.pub | pbcopy .
İçerik aşağıdakine benzer bir yapıda olacaktır.
ssh-ed25529 LLoWYaPswHzVqQ7L7B07LzIJbntgmHqrE40t17nGXL71QX9IoFGKYoF5pJKUMvR+DZotTm user@example.com
Not:
Anahtar başarıyla eklenirse iletişim kutusu kapanır ve anahtar SSH anahtarları sayfasında listelenir.
Bu SSH anahtarı geçersiz hatasını alırsanız, ortak anahtarın (.pub dosyası) tüm içeriğini kopyaladığınızı kontrol edin.
SSH kimlik doğrulamanızın çalışıp çalışmadığını kontrol etme
işlemleri test etmek için terminal üzerinde aşağıdaki komutu yazalım.
ssh -T git@bitbucket.org
Eğer SSH başarılı bir şekilde bağlantı kurabilirse aşağıdaki şekilde bir çıktı alacaksınız:
authenticated via ssh key.
You can use git to connect to Bitbucket. Shell access is disabled
Kaynak: