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ızid_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.pubid_rsa_wolinka,id_rsa_wolinka.pubknown_hostsconfig(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:
| Durum | Komut |
|---|---|
| Yüklü anahtarları gör | ssh-add -l |
| Yeni anahtar ekle | ssh-add ~/.ssh/id_rsa_wolinka |
| Tüm anahtarları kaldır | ssh-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 -lile doğru anahtarın yüklü olduğundan emin olun.- Sunucudaki
~/.ssh/authorized_keysdosyasında sizin public anahtarınızın olup olmadığını kontrol edin. - Yanlış kullanıcı adıyla (
User rootyerineUser ubuntugibi) 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 🫶