SSH Public Key Hatası Nedir?
Öncelikle, bu hatanın ne olduğunu anlamak önemlidir. SSH public key hatası, genellikle iki ana sebepten kaynaklanır: yanlış yapılandırılmış bir SSH anahtarı ya da sunucuya bağlanmaya çalışırken doğru public key'in bulunmaması. Bu hata, bağlantı kurarken doğrulama işlemi yapılırken, public key’in eksik veya hatalı olmasından dolayı meydana gelir.
SSH Public Key Hatası Nasıl Anlaşılır?
SSH bağlantı kurmaya çalışırken şu tarz bir hata mesajı alırsanız:
Permission denied (publickey).Bu, genellikle SSH public key hatasının belirtisidir. Yani, sunucu, bağlanmaya çalıştığınız anahtarı kabul etmiyor veya doğru public key'e sahip değilsiniz. Şimdi, gelin bu hatayı nasıl çözebileceğimize bakalım.
SSH Public Key Hatası Çözümü
1. SSH Anahtarınızı Doğru Oluşturduğunuzdan Emin Olun
İlk adım, doğru bir SSH anahtarı oluşturduğunuzdan emin olmaktır. Linux terminalinde şu komutu kullanarak yeni bir SSH anahtarı oluşturabilirsiniz:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"Bu komut, 4096 bit uzunluğunda yeni bir RSA anahtarı oluşturacaktır. İlgili bir e-posta adresiyle anahtarınıza bir etiket de ekleyebilirsiniz.
2. Public Key'i Sunucuya Yükleyin
Anahtar çiftiniz oluşturulduktan sonra, public key'i sunucuya göndermeniz gerekiyor. Bunun için şu komutu kullanabilirsiniz:
ssh-copy-id user@server_ipBu komut, yerel bilgisayarınızdaki public key'i (genellikle `~/.ssh/id_rsa.pub` dosyasına kaydedilir) hedef sunucuya yükler.
3. Sunucuda Authorized Keys Dosyasını Kontrol Edin
Eğer SSH bağlantısı hala çalışmıyorsa, sunucunuzdaki `authorized_keys` dosyasının doğru şekilde ayarlandığından emin olun. Bu dosya, hangi public key'lerin bağlanmasına izin verileceğini belirler. Bu dosyayı kontrol etmek için şu komutu kullanabilirsiniz:
cat ~/.ssh/authorized_keysEğer public key burada yer almıyorsa, doğru key'i buraya manuel olarak eklemeniz gerekebilir.
4. SSH Konfigürasyonunu Kontrol Edin
Sunucuda SSH servisi ile ilgili bazı konfigürasyon hataları da bu tür hatalara yol açabilir. SSH sunucusunun yapılandırma dosyasını (`/etc/ssh/sshd_config`) kontrol edin. Bu dosyada özellikle şu satırlara dikkat edin:
PubkeyAuthentication yesBu satır, public key doğrulamasının etkin olduğundan emin olmanızı sağlar. Ayrıca, eğer `PasswordAuthentication` devre dışıysa, yalnızca public key ile giriş yapabileceğinizden emin olmalısınız.
5. Sunucuya Bağlanmayı Tekrar Deneyin
Tüm adımları takip ettikten sonra, SSH bağlantınızı tekrar deneyin. Bağlantının başarılı olduğunu görmek, adımların doğru şekilde uygulandığını gösterir.
Ekstra İpuçları
- Dosya İzinlerini Kontrol Edin: Hem yerel bilgisayarınızdaki hem de sunucudaki `.ssh` dizinleri ve dosyaları doğru izinlere sahip olmalıdır. Örneğin, `.ssh` dizini 700, `authorized_keys` dosyası ise 600 olmalıdır.
chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys- Firewall veya Güvenlik Duvarı Sorunlarını Kontrol Edin: Bağlantı problemleri bazen firewall ayarlarından da kaynaklanabilir. Sunucuda herhangi bir güvenlik duvarı varsa, SSH portunun (genellikle 22 numaralı port) açık olduğundan emin olun.
Sonuç
SSH public key hatası, Linux kullanıcıları için sık karşılaşılan bir durumdur, ancak çözümü oldukça basittir. Yukarıdaki adımları dikkatlice takip ederek bu hatayı kolayca çözebilirsiniz. Anahtarlarınızı düzgün bir şekilde yapılandırarak, güvenli ve kesintisiz bir SSH bağlantısı kurabilirsiniz.