SSH Publickey Denied Hatası Çözümü: 5 Etkili Yöntem

SSH “Permission Denied” hatası, sunucu erişimini engelleyebilir. Bu makalede, SSH anahtarınızı kontrol etme, izinleri düzeltme ve güvenlik duvarı ayarlarını yapılandırma gibi adımlarla bu sorunu nasıl çözeceğinizi öğreneceksiniz. Güvenli SSH bağlantısı için çözümleri keşfedin.

SSH publickey, SSH (Secure Shell) bağlantısı kurarken karşılaşılan “Permission Denied (publickey,gssapi-keyex,gssapi-mic)” hatası, sunucuya erişiminizi engelleyerek ciddi bir sorun teşkil edebilir. Bu hata, genellikle yanlış yapılandırılmış SSH anahtarları, izin problemleri veya sunucu taraflı güvenlik duvarı ayarlarından kaynaklanır. Ancak endişelenmeyin, bu makalede bu can sıkıcı hatayı adım adım nasıl çözebileceğinizi detaylı bir şekilde inceleyeceğiz.

1. SSH Anahtar Çiftinizi Kontrol Edin ve Yeniden Oluşturun

Bu hatanın en yaygın nedenlerinden biri, yanlış oluşturulmuş veya bozulmuş bir SSH anahtar çiftidir. Anahtar çifti, bir özel anahtar (sizin makinenizde saklanan) ve bir genel anahtar (sunucuda saklanan) içerir. Özel anahtarınızı kaybetmeniz veya bozulması durumunda, yeni bir anahtar çifti oluşturmanız ve genel anahtarınızı sunucuya yeniden yüklemeniz gerekir.

Adımlar:

  1. Terminalinizi açın.
  2. ssh-keygen -t rsa -b 4096 komutunu kullanarak yeni bir anahtar çifti oluşturun.
  3. Anahtarı kaydetmek için bir dosya adı belirtin (örneğin, id_rsa).
  4. Bir parola belirleyin (isteğe bağlı, ancak önerilir).
  5. Genel anahtarınızı (id_rsa.pub) sunucuya kopyalayın. Bunu yapmak için ssh-copy-id kullanabilirsiniz: ssh-copy-id user@server_ip.

Örnek: Diyelim ki anahtar oluşturma sırasında bir hata oluştu ve anahtarınız bozuldu. Yukarıdaki adımları izleyerek yeni bir anahtar oluşturabilir ve sunucuya erişiminizi geri kazanabilirsiniz.

2. .ssh Dizini ve Yetkilendirilmiş Anahtarlar Dosyasının İzinlerini Düzeltin

SSH, güvenlik nedeniyle belirli dosya ve dizin izinleri gerektirir. Yanlış izinler, sunucunun genel anahtarınızı okumasını engelleyebilir ve “Permission Denied” hatasına yol açabilir. Özellikle .ssh dizininin ve authorized_keys dosyasının doğru izinlere sahip olduğundan emin olmalısınız.

Adımlar:

  1. Sunucuya SSH ile bağlanın (başka bir yöntemle, örneğin konsol üzerinden).
  2. .ssh dizininin izinlerini kontrol edin: ls -ld ~/.ssh. İzinler drwx------ (700) olmalıdır.
  3. authorized_keys dosyasının izinlerini kontrol edin: ls -l ~/.ssh/authorized_keys. İzinler -rw------- (600) olmalıdır.
  4. Yanlış izinleri düzeltmek için chmod komutunu kullanın: chmod 700 ~/.ssh ve chmod 600 ~/.ssh/authorized_keys.

Örnek: Bir kullanıcının .ssh dizininin izinleri drwxr-xr-x olarak ayarlanmışsa, bu SSH erişimini engelleyecektir. İzinleri chmod 700 ~/.ssh komutuyla düzelterek sorunu çözebilirsiniz.

3. SSH Yapılandırma Dosyasını (sshd_config) İnceleyin

Sunucudaki SSH yapılandırma dosyası (sshd_config), SSH sunucusunun nasıl çalıştığını kontrol eder. Bu dosyada yapılan yanlış bir değişiklik, anahtar tabanlı kimlik doğrulamayı devre dışı bırakabilir veya başka güvenlik sorunlarına yol açabilir. Dosyayı dikkatlice inceleyerek, anahtar tabanlı kimlik doğrulamanın etkin olduğundan ve doğru yapılandırıldığından emin olun.

Adımlar:

  1. Sunucuya SSH ile bağlanın (veya konsol üzerinden erişin).
  2. sshd_config dosyasını bir metin düzenleyiciyle açın: sudo nano /etc/ssh/sshd_config.
  3. Aşağıdaki satırların doğru ayarlandığından emin olun:
    • PubkeyAuthentication yes (Anahtar tabanlı kimlik doğrulama etkin olmalı)
    • AuthorizedKeysFile .ssh/authorized_keys (Yetkilendirilmiş anahtarlar dosyasının yolu doğru olmalı)
    • PasswordAuthentication no (Parola tabanlı kimlik doğrulama devre dışı bırakılması önerilir)
  4. Değişiklikleri kaydedin ve dosyayı kapatın.
  5. SSH sunucusunu yeniden başlatın: sudo systemctl restart sshd.

Örnek: sshd_config dosyasında PubkeyAuthentication no olarak ayarlanmışsa, anahtar tabanlı kimlik doğrulama devre dışı olacaktır. Bu ayarı yes olarak değiştirip SSH servisini yeniden başlatarak sorunu çözebilirsiniz.

4. Güvenlik Duvarı Ayarlarınızı Kontrol Edin

Güvenlik duvarı, sunucunuza gelen ve giden ağ trafiğini kontrol eder. Güvenlik duvarı ayarlarınız SSH bağlantılarını engelliyorsa, “Permission Denied” hatası alabilirsiniz. SSH bağlantılarına izin vermek için güvenlik duvarınızı yapılandırmanız gerekir.

Adımlar:

  1. Sunucunuzda hangi güvenlik duvarının çalıştığını belirleyin (örneğin, ufw, firewalld).
  2. Güvenlik duvarının SSH bağlantılarına izin verip vermediğini kontrol edin. Örneğin, ufw status komutuyla ufw‘nin durumunu kontrol edebilirsiniz.
  3. Gerekirse, SSH bağlantılarına izin vermek için güvenlik duvarı kurallarını ekleyin. Örneğin, sudo ufw allow ssh veya sudo ufw allow 22 (eğer SSH farklı bir portta çalışıyorsa) komutunu kullanabilirsiniz.
  4. Güvenlik duvarını yeniden başlatın: sudo ufw enable ve sudo ufw restart.

Örnek: ufw güvenlik duvarı etkin ve SSH bağlantılarına izin vermiyorsa, sudo ufw allow ssh komutuyla SSH erişimine izin verebilirsiniz.

5. GSSAPI Kimlik Doğrulamasını Devre Dışı Bırakın (Son Çare)

GSSAPI (Generic Security Services Application Program Interface), Kerberos gibi kimlik doğrulama mekanizmalarını kullanır. Bazı durumlarda, GSSAPI ile ilgili sorunlar “Permission Denied” hatasına neden olabilir. Bu durumda, GSSAPI kimlik doğrulamasını devre dışı bırakmayı deneyebilirsiniz. Ancak, bunun güvenlik etkilerini göz önünde bulundurun ve yalnızca diğer çözümler işe yaramadığında bu yöntemi kullanın.

Adımlar:

  1. Sunucuya SSH ile bağlanın (veya konsol üzerinden erişin).
  2. sshd_config dosyasını bir metin düzenleyiciyle açın: sudo nano /etc/ssh/sshd_config.
  3. Aşağıdaki satırları ekleyin veya düzenleyin:
    • GSSAPIAuthentication no
    • GSSAPICleanupCredentials no
  4. Değişiklikleri kaydedin ve dosyayı kapatın.
  5. SSH sunucusunu yeniden başlatın: sudo systemctl restart sshd.

Uyarı: GSSAPI’yi devre dışı bırakmak, sunucunuzun güvenliğini azaltabilir. Bu nedenle, bu yöntemi yalnızca son çare olarak kullanın ve güvenlik etkilerini dikkatlice değerlendirin.

SSH Publickey Hatasını Aşmanın Yolları

SSH “Permission Denied” hatasıyla karşılaştığınızda, öncelikle SSH anahtar çiftinizin doğru oluşturulduğundan ve yapılandırıldığından emin olun. Ardından, .ssh dizini ve authorized_keys dosyasının izinlerini kontrol edin. SSH yapılandırma dosyasını (sshd_config) inceleyerek anahtar tabanlı kimlik doğrulamanın etkin olduğundan ve doğru yapılandırıldığından emin olun. Güvenlik duvarı ayarlarınızın SSH bağlantılarını engellemediğinden emin olun. Son olarak, GSSAPI kimlik doğrulamasını devre dışı bırakmayı deneyebilirsiniz. Bu adımları izleyerek, SSH bağlantı sorunlarınızı çözebilir ve sunucunuza güvenli bir şekilde erişebilirsiniz.

SSH publickey hatası neden oluşur?

SSH publickey hatası, genellikle SSH anahtar çiftinin yanlış yapılandırılması, izin sorunları veya sunucu tarafındaki güvenlik duvarı ayarlarından kaynaklanır. Bu durumda, sunucu genel anahtarınızı okuyamaz ve bağlantıyı reddeder.

.ssh dizininin izinleri nasıl olmalıdır?

.ssh dizininin izinleri drwx—— (700) olarak ayarlanmalıdır. Bu, yalnızca kullanıcının dizine okuma, yazma ve çalıştırma iznine sahip olduğu anlamına gelir. Yanlış izinler, SSH erişimini engelleyebilir.

authorized_keys dosyasının izinleri nasıl olmalıdır?

authorized_keys dosyasının izinleri -rw——- (600) olarak ayarlanmalıdır. Bu, yalnızca kullanıcının dosyayı okuma ve yazma iznine sahip olduğu anlamına gelir. Yanlış izinler, SSH erişimini engelleyebilir.

SSH yapılandırma dosyasında hangi ayarlar kontrol edilmelidir?

SSH yapılandırma dosyasında (sshd_config) PubkeyAuthentication ayarının yes olarak ayarlandığından, AuthorizedKeysFile ayarının .ssh/authorized_keys olarak doğru yapılandırıldığından ve PasswordAuthentication ayarının no olarak ayarlandığından emin olun.

GSSAPI kimlik doğrulamasını devre dışı bırakmak güvenli midir?

GSSAPI kimlik doğrulamasını devre dışı bırakmak, sunucunuzun güvenliğini azaltabilir. Bu nedenle, bu yöntemi yalnızca son çare olarak kullanın ve güvenlik etkilerini dikkatlice değerlendirin. Diğer çözümler işe yaramadığında bu yöntemi kullanmanız önerilir.

Parola tabanlı kimlik doğrulama mı, anahtar tabanlı kimlik doğrulama mı daha güvenlidir?

Anahtar tabanlı kimlik doğrulama, parola tabanlı kimlik doğrulamaya göre daha güvenlidir. Çünkü anahtar tabanlı kimlik doğrulama, parolaların tahmin edilmesini veya ele geçirilmesini zorlaştırır. Parola tabanlı kimlik doğrulama, güvenlik açıkları nedeniyle riskli olabilir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

eniyihostingfirmalari.tr olarak web barındırma firmaları hakkında bağımsız incelemeler paylaşıyoruz. Tüm içeriklerimiz kendi araştırmalarımıza ve değerlendirme kriterlerimize dayanmaktadır. Herhangi bir firmadan maddi destek almıyor, sonuçlarımızı dış etkenlere göre şekillendirmiyoruz. Burada yer alan incelemeler yalnızca bilgilendirme amaçlıdır; seçim ve sorumluluk tamamen kullanıcıya aittir.

Bu kapanacak 0 saniye