SSH anahtarları, sunuculara güvenli ve şifresiz erişim sağlamak için kullanılan kriptografik yöntemlerdir.
SSH anahtarları, sunuculara güvenli ve şifresiz erişim sağlamak için kullanılan kriptografik yöntemlerdir. Geleneksel parola tabanlı girişlere kıyasla, SSH anahtarları daha yüksek güvenlik seviyesi sunar çünkü özel anahtarlar yerel makinede saklanır ve yalnızca eşleşen genel anahtar sunucuda doğrulanır. Bu yapılandırma, özellikle sistem yöneticileri ve geliştiriciler için zaman tasarrufu sağlar ve brute-force saldırılarına karşı koruma ekler. Bu makalede, SSH anahtarı oluşturma sürecini adım adım ele alacak, sunucuya yükleme işlemini detaylandıracak ve şifresiz girişi etkinleştireceğiz. Tüm adımlar Linux tabanlı sistemler için optimize edilmiştir ve pratik örneklerle desteklenmiştir.
SSH anahtarı oluşturmak, ssh-keygen aracıyla gerçekleştirilir. Bu araç, OpenSSH paketiyle birlikte gelir ve hem RSA hem de Ed25519 gibi modern algoritmaları destekler. Ed25519, daha kısa anahtar uzunluğuyla yüksek güvenlik sağlar ve önerilen seçenektir. Terminali açın ve aşağıdaki komutu çalıştırın:
mkdir -p ~/.ssh.ssh-keygen -t ed25519 -C "[email protected]". Burada -C parametresi yorum ekler ve kimlik doğrulamada yardımcı olur.~/.ssh/id_ed25519 yolunu kabul edin.İşlem tamamlandığında, id_ed25519 (özel anahtar) ve id_ed25519.pub (genel anahtar) dosyaları oluşur. Özel anahtarı asla paylaşmayın; genel anahtarı ise sunucuya aktaracağız. Bu adım yaklaşık 10 saniye sürer ve anahtar boyutu 256 bit olur. RSA alternatifi için -t rsa -b 4096 kullanın, ancak Ed25519 daha verimlidir. Oluşturulan anahtarları ls -la ~/.ssh ile doğrulayın; izinler otomatik olarak 600 ve 644 olarak ayarlanır.
Güvenlik açısından, passphrase eklemek ekstra koruma sağlar ancak şifresiz girişi engeller. Şifresiz mod için ssh-agent kullanabilirsiniz: eval "$(ssh-agent -s)" ve ssh-add ~/.ssh/id_ed25519. Bu bölüm, anahtar yönetiminin temelini atar ve sonraki adımlara zemin hazırlar.
Genel anahtarı sunucuya kopyalamak, ssh-copy-id aracıyla kolaylaşır. Önce sunucuya parola ile bağlanabildiğinizden emin olun. Komut: ssh-copy-id -i ~/.ssh/id_ed25519.pub kullanici@sunucu-ip. Bu, genel anahtarı sunucunun ~/.ssh/authorized_keys dosyasına ekler. Eğer ssh-copy-id yoksa, manuel yöntem kullanın:
cat ~/.ssh/id_ed25519.pub çıktısını panoya alın.ssh kullanici@sunucu-ip.mkdir -p ~/.ssh && chmod 700 ~/.ssh.echo "içerik" >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys.Sunucu tarafında izinler kritik öneme sahiptir: ~/.ssh 700, authorized_keys 600 olmalıdır. Yanlış izinler “Permission denied” hatasına yol açar. Bu işlem, birden fazla sunucu için tekrarlanabilir; her sunucu için ayrı authorized_keys satırı eklenir. Manuel yöntemde, anahtar satırının sonunda yorumu koruyun ki izlenebilirlik artsın. Yükleme sonrası, sunucudan çıkış yapın ve testi planlayın.
Sunucuda /etc/ssh/sshd_config dosyasını düzenleyin (root erişimiyle sudo nano /etc/ssh/sshd_config). PubkeyAuthentication yes ve AuthorizedKeysFile .ssh/authorized_keys satırlarını etkinleştirin. PasswordAuthentication no yaparak parola girişini devre dışı bırakabilirsiniz, ancak test sonrası uygulayın. Değişiklikleri kaydedin ve sudo systemctl restart sshd ile servisi yeniden başlatın. Bu ayarlar, yalnızca anahtar tabanlı girişe izin verir ve güvenliği maksimize eder. Logları journalctl -u ssh ile izleyin; hatalar burada görünür. Yapılandırma, Debian/Ubuntu ve CentOS için standarttır.
Yerel makinede ~/.ssh/config dosyası oluşturun: Host sunucu-ip altında IdentityFile ~/.ssh/id_ed25519 ve User kullanici ekleyin. Bu, her bağlantıda parametreleri otomatikleştirir. StrictHostKeyChecking no ekleyerek ilk bağlantı uyarılarını atlayın (güvenilir ağlar için). ssh-agent’i kalıcı hale getirmek için ~/.bashrc’ye eval komutunu ekleyin. Bu optimizasyonlar, günlük kullanımı hızlandırır ve hataları minimize eder. Örnek config bloğu: Host * IdentitiesOnly yes ile birden fazla anahtarı yönetin.
Şifresiz girişi test edin: ssh -i ~/.ssh/id_ed25519 kullanici@sunucu-ip. Sorunsuz bağlanıyorsa başarı. Hata durumlarında: verbose mod ssh -v kullanici@sunucu-ip ile debug edin. Yaygın sorunlar: Yanlış izinler (chmod ile düzeltin), SELinux (setsebool -P sshd_disable_trans 1), veya firewall (ufw allow 22). Anahtar passphrase’liyse ssh-add unutmayın. Bu adımlar, %100 başarı sağlar ve üretim ortamlarında güvenilirlik artırır.
SSH anahtar yapılandırması tamamlandığında, sisteminize yüksek güvenlikli erişim kazanırsınız. Düzenli anahtar rotasyonu (yılda bir yenileyin) ve çok faktörlü kimlik doğrulama entegrasyonu önerilir. Bu yöntemle, geliştirme akışınızı kesintisiz hale getirirken siber tehditlere karşı proaktif koruma sağlarsınız. Uygulamaya hemen başlayın ve kendi ortamınızda uyarlayın.