SSH anahtarları, her oturum açmada parolaya ihtiyaç duymadan SSH oturumlarının kimliğini doğrulamak için harika bir yöntemdir. Ancak tüm teknolojiler gibi SSH anahtarları da mükemmel değildir ve bunları kullanırken hatalarla karşılaşabilirsiniz. SSH anahtarlarıyla çalışırken en yaygın hatalardan biri, izin reddedildi (publickey) hatasıdır.
Bu makale, bu hatanın çeşitli nedenlerini tartışacak ve size hatayı düzeltmek için atabileceğiniz hızlı adımları gösterecektir.
Hata 1: Yetkili Anahtarlar ve Dizin İzinleri
Bu hatanın nedenlerinden biri, .ssh dizini ve yetkili_anahtarlar dosyası için yapılandırılmış izinler ve sahiplik olabilir.
Bu sorunu çözmek için .ssh dizin izinlerini 700'e ve yetkili_anahtar izinlerini 6oo'ya ayarlayın.
sudo chmod 700~/.sshsudo chmod 600yetkili_anahtarlar
Hata 2: SSH Yanlış Yapılandırmaları
Publickey hatasının diğer bir yaygın nedeni, sshd_config dosyasındaki yanlış bir yapılandırmadır. Bu sorunu çözmek için /etc/ssh/sshd_config dosyasını düzenleyin ve aşağıdaki girişleri değiştirin.
#PermitRootLogin yasaklama şifresi#PasswordAuthentication evet
Yukarıdaki girişler aşağıda gösterildiği gibi olmalıdır:
İzin VerKökGirişEvetŞifre DoğrulamaEvet
Yapılandırmayı kaydedin ve hizmeti yeniden başlatın:
sudosystemctl sshd.service'i yeniden başlatHata 3: Eksik Anahtarlar
Publickey izni reddedildi hatasının bir başka olası nedeni, yerel makinenizdeki eksik anahtarlar olabilir. Anahtarlarınızı sunucunun yetkili_anahtarları dosyasına eklediyseniz ancak karşılık gelen özel anahtarlar eksikse, bu bir hataya neden olabilir.
Bu sorunu çözmek için aşağıdaki gibi ssh yapılandırma dosyasını düzenleyin, ortak anahtar kimlik doğrulamasını devre dışı bırakın ve parola ile oturum açmayı etkinleştirin:
PubkeyAuthenticationEvet#PasswordAuthentication evet
Aşağıdaki girişlere değiştirin:
#PubkeyAuthentication evetŞifre DoğrulamaEvet
Yapılandırmayı düzenledikten sonra dosyayı kaydedin ve SSH hizmetini yeniden başlatın:
sudosystemctl sshd.service'i yeniden başlatAnahtarlarınızın güvenliğinin ihlal edildiğinden eminseniz, bunları yetkili_anahtarlardan kaldırabilir veya SSH'de iptal edilenler listesine belirli bir anahtar ekleyebilirsiniz.
Çözüm
Bu hızlı kılavuz, SSH'de izin reddedildi (publickey) hatasına neden olabilecek çeşitli sorunları nasıl çözeceğinizi gösterdi. Bu sorun devam ederse, diğer sorun giderme yöntemlerini göz önünde bulundurun.