MacOS SSH Anahtarı Nasıl Oluşturulur? - Wolinka

MacOS SSH Anahtarı Nasıl Oluşturulur?


Uzak sunucularla çalışmak artık yazılım geliştiriciler, sistem yöneticileri ve WordPress uzmanları için günlük işlerin vazgeçilmez bir parçası. Ancak bu bağlantıların güvenli ve hızlı olması büyük önem taşır. İşte bu noktada SSH (Secure Shell) anahtarları devreye girer.

MacOS SSH anahtarı oluşturmak, sadece birkaç terminal komutuyla kolayca yapılabilir. Bu işlem, hem zaman kazandırır hem de sisteminize her seferinde parola girmeye gerek kalmadan yüksek güvenlikli bağlantılar kurmanızı sağlar.

Bu rehberde, MacOS işletim sistemi üzerinde SSH anahtarının ne olduğunu, neden kullanıldığını ve nasıl oluşturulacağını adım adım öğreneceksiniz.

SSH Anahtarı Nedir ve Neden Kullanılır?

SSH (Secure Shell), özellikle uzak sunuculara güvenli bağlantı sağlamak için kullanılan bir iletişim protokolüdür. SSH key yani SSH anahtar çifti, bu bağlantının kimlik doğrulama sürecini şifre girmeden gerçekleştirmenize olanak sağlar.

Özellikle şu alanlarda yaygın olarak kullanılır:

  • GitHub, GitLab gibi kod paylaşım platformlarında
  • VPS ya da bulut sunuculara bağlanırken
  • Sunucu yönetimi ve deploy işlemlerinde
  • WordPress projelerinde uzak bağlantı yönetimi

SSH key çifti, bir özel (private) ve bir genel (public) anahtardan oluşur. Özel anahtar sadece sizin cihazınızda kalır, genel anahtar ise erişim vermek istediğiniz sistemlere eklenir.

🔐 Sonuç olarak, SSH kullanımı güvenliğinizi artırır, süreçleri otomatikleştirir ve şifre yönetimi karmaşasını ortadan kaldırır.

MacOS SSH Anahtarı Oluşturma

Terminal Uygulamasını Açın

MacOS SSH anahtarı oluşturma işlemi için ilk adım Terminal uygulamasını açmaktır.
Terminal’e erişmenin iki kolay yolu vardır:

  • Finder > Uygulamalar > Yardımcı Programlar > Terminal
  • Ya da klavyeden Cmd + Space tuşlarına basıp “Terminal” yazarak Spotlight üzerinden açabilirsiniz.

SSH Anahtarı Oluşturma Komutunu Girin

Terminal açıkken aşağıdaki komutu yazın ve Enter tuşuna basın:

ssh-keygen -t rsa -b 4096 -C "seninmailin@example.com"

Bu komut ne yapar?

  • -t rsa: RSA algoritmasını kullanır (güvenli ve yaygın)
  • -b 4096: 4096 bit uzunluğunda güçlü bir anahtar üretir
  • -C: Bu key’e ait tanımlayıcı not (genelde e-posta adresi yazılır)

Anahtar Dosyasının Kayıt Yerini Seçin

Komutu çalıştırdıktan sonra şu soruyla karşılaşırsınız:

Enter file in which to save the key (/Users/kullaniciadi/.ssh/id_rsa):

Varsayılan dosya ismini kabul etmek için ENTER tuşuna basabilirsiniz.

Ancak birden fazla SSH key kullanıyorsanız örneğin şöyle isimlendirebilirsiniz:

/Users/kullaniciadi/.ssh/id_rsa_wolinka

Bu, farklı projeler için key’leri ayırmanızı sağlar.

Opsiyonel Olarak Bir Şifre Belirleyin

Komut devamında sizden bir “passphrase” (şifre) isteyecektir. Bu, SSH anahtarınızı ek bir katmanla korur.

  • Güvenlik için önerilir ama isterseniz boş bırakıp ENTER ile geçebilirsiniz.

SSH Anahtarı Başarıyla Oluşturuldu

İşlem tamamlandığında aşağıdaki gibi bir mesaj alırsınız:

Your identification has been saved in /Users/kullaniciadi/.ssh/id_rsa_wolinka
Your public key has been saved in /Users/kullaniciadi/.ssh/id_rsa_wolinka.pub
  • id_rsa: Özel anahtarınız
  • id_rsa.pub: Genel anahtarınız (sunuculara veya GitHub’a eklenecek olan)

SSH Anahtarını .ssh Klasörüne Taşımak

Eğer MacOS SSH anahtarınızı oluştururken sadece dosya adı yazdıysanız (örneğin id_rsa_wolinka), bu dosya genellikle terminalde bulunduğunuz dizine kaydedilir. Yani .ssh klasörüne otomatik olarak gitmez.

Bu nedenle oluşturduğumuz SSH anahtarlarını .ssh klasörüne taşımak için aşağıdaki adımları izleyebilirsiniz:

mv /Users/kullaniciadi/id_rsa_wolinka ~/.ssh/
mv /Users/kullaniciadi/id_rsa_wolinka.pub ~/.ssh/

Eğer .ssh klasörü sisteminizde yoksa şu komutla oluşturabilirsiniz:

mkdir -p ~/.ssh

Dosya İzinlerini Ayarlayın

SSH sisteminin doğru çalışması için dosya izinlerini aşağıdaki gibi ayarlayın:

chmod 600 ~/.ssh/id_rsa_wolinka
chmod 644 ~/.ssh/id_rsa_wolinka.pub

Taşımanın Başarılı Olduğunu Kontrol Edin

Taşınan dosyaların listelendiğinden emin olmak için şu komutu çalıştırın:

ls -l ~/.ssh/

Bu liste içinde id_rsa_wolinka ve id_rsa_wolinka.pub dosyalarını görüyorsanız işlem başarıyla tamamlanmıştır.

Genel Anahtarı Kopyalayın (Public Key)

Public key’i kopyalamak için Terminal’de şu komutu yazabilirsiniz:

pbcopy < ~/.ssh/id_rsa.pub

Bu işlem, public key’inizi panonuza (clipboard’a) kopyalar. Artık GitHub, GitLab, Bitbucket veya bir sunucu paneline bu anahtarı yapıştırarak tanımlayabilirsiniz.

Alternatif Yöntem: Anahtarı Manuel Kopyalama

Bazı durumlarda pbcopy komutu sisteminizde çalışmayabilir. Bu durumda aşağıdaki alternatif yöntemi kullanabilirsiniz:

cat ~/.ssh/id_rsa_wolinka.pub

Ekrana gelen uzun metin, sizin public SSH anahtarınızdır. Farenizle tamamını seçin ve kopyalayın (⌘ + C veya sağ tıklayıp “Kopyala”). Ardından GitHub, GitLab veya sunucu panelinize yapıştırın.

Bu alternatif yöntem, özellikle pbcopy komutunun çalışmadığı ortamlarda en pratik çözümdür. Public key’inizin doğru kopyalanıp yapıştırıldığından emin olun — fazladan boşluk, satır sonu ya da eksik karakter bağlantı sorunlarına neden olabilir.

Güvenlik Tavsiyesi

  • Public key’i her yere dağıtabilirsiniz, ama private key sadece sizin makinenizde kalmalı.
  • Private key’i asla bir maille, mesajla ya da FTP ile bir yerlere göndermeyin.
  • Eğer şüpheli bir durum olduysa hemen yeni bir key oluşturup sunuculardaki eski key’i kaldırın.

Bonus: SSH Anahtar Yönetimi ve Gelişmiş Ayarlar

SSH anahtarlarını oluşturduktan sonra, özellikle birden fazla uzak sunucuyla çalışıyorsanız, onları düzenli ve etkili şekilde yönetmek önemlidir. Bu bölümde SSH anahtarlarını listeleme, silme, config dosyasıyla yönetme ve bazı pratik ipuçları bulacaksınız.

SSH Anahtarlarını Listeleme

Tüm SSH anahtarlarınızı görmek için terminalde aşağıdaki komutu kullanabilirsiniz:

ls -al ~/.ssh

Bu komut size .ssh klasörü içindeki tüm dosyaları ve izinlerini gösterir. Genellikle şu dosyaları görürsünüz:

  • id_rsa, id_rsa.pub
  • id_rsa_wolinka, id_rsa_wolinka.pub
  • known_hosts
  • config (varsa, SSH yapılandırma dosyası)

SSH Anahtarını Silme

Kullanmadığınız veya eski bir anahtarı kaldırmak için:

rm ~/.ssh/id_rsa_eski
rm ~/.ssh/id_rsa_eski.pub

⚠️ Dikkat: Yanlışlıkla aktif bir anahtarı silerseniz, o anahtarla erişim kurduğunuz sunuculara bağlanamazsınız.

SSH config Dosyası ile Anahtar Yönetimini Kolaylaştırma

Eğer birden fazla MacOS SSH anahtarı kullanıyorsanız (örneğin bir tanesi GitHub için, biri sunucu için), ~/.ssh/config dosyası ile hangi anahtarın hangi host için kullanılacağını belirleyebilirsiniz. Ayrıca SSH Config dosyasıyla ilgili oluşturduğumuz rehbere buradan ulaşabilirsiniz 👉 https://blog.wolinka.com.tr/ssh-config-dosyasini-verimli-kullanma/

Congif dosyasını açmak için aşağıdaki komutu kullanabilirsiniz.

nano ~/.ssh/config

Config dosyasını açtıktan sonra, aşağıdakine benzer bir şekilde yapılandırabilirsiniz.

# GitHub için
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_github

# Wolinka sunucusu için
Host wolinka
  HostName projeler.wolinka.com.tr
  User root
  IdentityFile ~/.ssh/id_rsa_wolinka

Bu yapı sayesinde şu şekilde bağlantı kurabilirsiniz:

ssh wolinka

Ve arka planda otomatik olarak doğru anahtar kullanılır.

SSH Agent ile Anahtarı Otomatik Yükleme

Anahtar şifreli ise ve her terminal açılışında şifre girmek istemiyorsanız, ssh-agent ile otomatik yüklemeyi aktif hale getirebilirsiniz:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_wolinka

İstersen .zshrc veya .bash_profile dosyana ekleyerek kalıcı hale getirebilirsin. Bu sayede terminal açıldığında otomatik yüklenir ve tekrar tekrar şifre girmen gerekmez

Aktif Olarak Yüklenen SSH Anahtarlarını Görüntüleme

Bilgisayarında birçok MacOS SSH anahtarı olabilir ama bağlantı sırasında hangilerinin gerçekten devrede olduğunu biliyor musun? İşte bunu öğrenmenin yolu ssh-add -l komutudur.

Her özel MacOS SSH anahtarı dosya olarak bilgisayarında dursa da, sistem yalnızca aktif belleğe (ssh-agent) yüklenmiş olanları kullanabilir. Yani:

  • Anahtar dosyasının varlığı ≠ Anahtarın kullanıma hazır olduğu anlamına gelmez.
  • “Neden bağlanamıyorum?” sorusunun cevabı çoğu zaman buradadır.

Terminalde çalıştır:

ssh-add -l

Eğer anahtarlar yüklüyse şöyle bir çıktı alırsın:

4096 SHA256:as7d8as7d8… /Users/kullaniciadi/.ssh/id_rsa_wolinka (RSA)

Bu, o an bellekte bulunan ve bağlantılarda kullanılabilecek bir özel anahtar olduğunu gösterir.

Hiçbir Anahtar Yüklenmemişse:

Şöyle bir mesajla karşılaşırsın:

The agent has no identities.

Bu, SSH bağlantısı kurmaya çalıştığında sistemin deneyecek hiçbir anahtarı olmadığı anlamına gelir. Bu durumda elle yüklemen gerekir:

ssh-add ~/.ssh/id_rsa_wolinka

Eğer anahtar şifreliyse senden parolası istenir.

Neden Önemli?

Bu tıpkı cebinde 10 anahtar taşıyıp, kapıyı açmaya çalışırken hiçbirini eline almamış olman gibi bir şey. Anahtar orada, ama aktif değil.

Aktif Olarak Yüklenen SSH Anahtarlarını Sıfırlama

Tüm yüklü anahtarları sıfırlamak istersen:

ssh-add -D

Bu, bellekteki tüm özel anahtarları kaldırır.

Özetle:

DurumKomut
Yüklü anahtarları görssh-add -l
Yeni anahtar eklessh-add ~/.ssh/id_rsa_wolinka
Tüm anahtarları kaldırssh-add -D

known_hosts Dosyasını Temizleme

SSH ile ilk kez bağlandığınız sunucuların izleri ~/.ssh/known_hosts dosyasına kaydedilir. Bir sunucunun IP’si değişirse bağlantı hatası alabilirsiniz.

Hata durumunda, dosyadaki ilgili satırı silebilir ya da tümünü sıfırlayabilirsin:

# Tümünü silmek için
rm ~/.ssh/known_hosts

# Yalnızca belirli bir host'u silmek için
ssh-keygen -R sunucuadi.com

Bu bonus bilgilerle SSH kullanımını sadece güvenli değil, aynı zamanda verimli hale getirebilirsin. Özellikle projelerin arttıkça config dosyası ve ssh-agent gibi araçlar zaman kazandırır ve karışıklığı önler.

Sık Karşılaşılan SSH Problemleri ve Çözümleri

SSH kullanırken her şey her zaman yolunda gitmeyebilir. Özellikle ilk kurulumlar ve çoklu anahtar yönetiminde bazı yaygın hatalarla karşılaşmak doğaldır. İşte bazı örnekler ve çözümleri:

“Permission denied (publickey)” Hatası

Anlamı: Bağlantı kurmaya çalıştığınız sunucu, sizin gönderdiğiniz hiçbir anahtarı tanımıyor.

Çözüm:

  • ssh-add -l ile doğru anahtarın yüklü olduğundan emin olun.
  • Sunucudaki ~/.ssh/authorized_keys dosyasında sizin public anahtarınızın olup olmadığını kontrol edin.
  • Yanlış kullanıcı adıyla (User root yerine User ubuntu gibi) bağlanmaya çalışıyor olabilirsiniz — config dosyasını kontrol edin.

Farklı Sunucular İçin Farklı Anahtarlar Kullanamama

Durum: GitHub’a ayrı bir anahtar, kendi sunucunuza ayrı bir anahtar tanımladınız ama sistem hep aynı anahtarı kullanıyor.

Çözüm:
.ssh/config dosyasına her sunucu için ayrı Host tanımı ekleyin ve IdentityFile ile hangi anahtarı kullanacağını açıkça belirtin.

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

Sonuç

SSH anahtarları, yazılım geliştiricilerden sistem yöneticilerine ve WordPress uzmanlarına kadar birçok profesyonelin günlük işlerini hem daha güvenli hem de daha verimli hale getirir. MacOS üzerinde sadece birkaç komutla oluşturulabilen bu sistem, parolasız bağlantılar sayesinde vakit kazandırır ve insan hatasını minimize eder.

Eğer birden fazla uzak sunucuyla çalışıyorsanız, ~/.ssh/config yapılandırması ve ssh-agent kullanımı ile tüm SSH anahtarlarınızı yönetmek çok daha kolay hale gelir. Bu rehberdeki adımları uygulayarak hem kendi sisteminizi sadeleştirebilir hem de olası bağlantı sorunlarının önüne geçebilirsiniz.

Bizimle İletişime Geçin

MacOS SSH anahtarı kurulumunda sorun yaşıyor, uzak sunuculara bağlantı hatalarıyla boğuşuyor veya WordPress projeleriniz için profesyonel destek arıyorsanız, size yardımcı olmaktan memnuniyet duyarız 👉 https://wolinka.com.tr/iletisim/

Sevgiler 🫶

Eğer Faydalı Bulduysan, Devamı Burada

Eğer bu içerik sana fayda sağlıyorsa daha fazlası için abone olabilirsin. Zorlayıcı teklif yok, spam yok. Sadece işini büyütmene yardımcı olacak içten ipuçları. ✨

    Bir yanıt yazın

    E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir