SSH Public Key Hatası Nedir?
SSH (Secure Shell), iki bilgisayar arasında güvenli bir bağlantı sağlamak için kullanılan popüler bir protokoldür. Bu protokole, genellikle şifre yerine kullanılan bir public key (açık anahtar) kullanarak bağlanılır. Bu durumda, istemci bilgisayarınızın public key'i, sunucuya tanıtılmış olmalıdır. Eğer bu anahtar doğru yapılandırılmamışsa, SSH bağlantısında hata alırsınız. Bu, çoğu zaman *“Permission denied (publickey)”* hatasıyla kendini gösterir.
SSH Public Key Hatasının Sebepleri
Birçok nedenden dolayı bu hatayı alabilirsiniz. İşte en yaygın sebepler:
1. Public Key’in Sunucuya Yüklenmemesi: Public key’inizi sunucuya eklememiş olabilirsiniz.
2. Private Key’in Yanlış Yolu: SSH istemcisi doğru private key dosyasını kullanmıyor olabilir.
3. Permissions Sorunları: Anahtar dosyalarınızın izinleri doğru ayarlanmamış olabilir.
4. SSH Config Ayarları: SSH konfigürasyon dosyasındaki hatalar da bağlantı sorunlarına yol açabilir.
Hata Çözümü: Adım Adım Rehber
Şimdi, bu hatayı nasıl çözeceğimize göz atalım. Adım adım takip ederek sorunu hızlıca çözebilirsiniz.
1. Adım: Public Key'in Sunucuya Eklenmesi
İlk olarak, public key’inizin sunucuya yüklendiğinden emin olun. Eğer yüklemediyseniz, aşağıdaki komutu kullanarak public key’i sunucuya ekleyebilirsiniz.
ssh-copy-id kullanıcı_adı@sunucu_ip_adresi
Bu komut, yerel makinenizdeki public key dosyasını (genellikle `~/.ssh/id_rsa.pub`), sunucunuzun `~/.ssh/authorized_keys` dosyasına ekler.
2. Adım: Private Key’in Doğru Yolda Olduğunu Kontrol Edin
Private key dosyanızın doğru konumda olduğundan emin olun. Varsayılan olarak SSH istemcisi `~/.ssh/id_rsa` dosyasını arar. Eğer farklı bir anahtar kullanıyorsanız, SSH komutunu şu şekilde yazabilirsiniz:
ssh -i /path/to/private_key kullanıcı_adı@sunucu_ip_adresi
3. Adım: Anahtar Dosyalarının İzinlerini Kontrol Edin
SSH, anahtar dosyalarının doğru izinlere sahip olmasını bekler. Private key dosyanızın izinlerinin `600` olması gerekir, yani sadece sahibi tarafından okunabilir ve yazılabilir olmalıdır. Bu izinleri şu şekilde ayarlayabilirsiniz:
chmod 600 ~/.ssh/id_rsa
Ayrıca, `~/.ssh` dizininizin izinlerinin `700` olduğundan emin olun:
chmod 700 ~/.ssh
4. Adım: SSH Konfigürasyonunu Kontrol Edin
Sunucunuzun SSH konfigürasyon dosyasındaki hatalar da bu tür sorunlara neden olabilir. Sunucuda `/etc/ssh/sshd_config` dosyasını açın ve aşağıdaki satırların doğru ayarlandığından emin olun:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Değişiklik yaptıysanız, SSH servisini yeniden başlatmayı unutmayın:
sudo systemctl restart sshd
Ekstra İpuçları
Bazen SSH bağlantısı sırasında bağlantı sorunları yaşanabilir. Eğer hala bağlanamıyorsanız, aşağıdaki komutla hata mesajlarını daha ayrıntılı bir şekilde görebilirsiniz:
ssh -v kullanıcı_adı@sunucu_ip_adresi
Bu komut, bağlantı sürecinde neler olduğunu detaylı bir şekilde gösterir ve sorunun ne olduğunu anlamanıza yardımcı olabilir.
Sonuç
Linux'ta SSH public key hatası, genellikle küçük yapılandırma hatalarından kaynaklanır. Bu rehberi takip ederek, bu hataları hızlıca düzeltebilir ve güvenli bağlantınızın keyfini çıkarabilirsiniz. Eğer bu adımlar sorununuzu çözmediyse, ssh loglarına göz atarak daha fazla bilgi edinebilir ve hata mesajlarını inceleyebilirsiniz.