Bir sabah, tüm işler yolunda gidiyorken, aniden bir şey ters gitmeye başladı. SSH ile uzak bir sunucuya bağlanmak istedim ama her defasında bağlantı hatası alıyordum. Durum bir hayli can sıkıcıydı. Bu tür anlar, her Linux kullanıcısının başına gelir, değil mi? Neyse ki, birkaç adımda bu sorunu nasıl çözebileceğimi öğrendim ve şimdi size bu süreci adım adım anlatacağım.
SSH Public Key Hatası nedir?
Peki, ne oldu da bu hata aldım? İşte birkaç olası neden:
1. Public Key Sunucuya Yüklenmemiş: Eğer public key doğru şekilde yüklenmediyse, sunucu bağlantıyı reddeder.
2. Wrong Permissions: Anahtar dosyanızın izinleri yanlış olabilir. Bu da bağlantı hatasına yol açar.
3. SSH Config Hataları: SSH konfigürasyon dosyasındaki bir hata da bu tür sorunları tetikleyebilir.
4. Key Format Sorunları: Public key formatı yanlış olabilir veya uyumsuz bir format kullanılıyor olabilir.
SSH Public Key Hatasını Nasıl Çözersiniz?
# Adım 1: Public Key’inizin Sunucuya Yüklendiğinden Emin Olun
ssh-copy-id user@sunucu_adresi
Bu komut, yerel anahtarınızı sunucudaki doğru kullanıcı hesabına yükler. Eğer bu komut çalışmazsa, elle de yüklemeyi deneyebilirsiniz. Bunun için:
1. Public key’inizi kopyalayın:
cat ~/.ssh/id_rsa.pub
2. Sunucuda `~/.ssh/authorized_keys` dosyasına yapıştırın. Dosya yoksa oluşturun.
# Adım 2: Anahtar İzinlerini Kontrol Edin
chmod 600 ~/.ssh/id_rsa
chmod 700 ~/.ssh
Bu komutlar, private key’inizin sadece siz tarafından okunabilir olmasını sağlar ve `~/.ssh` klasörünün doğru izinlere sahip olmasını garanti eder.
# Adım 3: SSH Konfigürasyonunu Kontrol Edin
sudo nano /etc/ssh/sshd_config
Burada, aşağıdaki satırların doğru şekilde ayarlandığından emin olun:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Bu satırlar, SSH’ın public key doğrulamasını kullanmasını sağlar.
# Adım 4: SSH Servisini Yeniden Başlatın
sudo systemctl restart sshd
Bu işlem, yapılan değişikliklerin geçerli olmasını sağlar.
# Adım 5: Anahtar Formatını Kontrol Edin
ssh-keygen -lf ~/.ssh/id_rsa.pub
Eğer format hatalıysa, yeni bir anahtar çifti oluşturabilirsiniz:
ssh-keygen -t rsa -b 4096
Bu komut, 4096 bitlik güçlü bir RSA anahtar çifti oluşturur.
# Adım 6: Hata Mesajlarını İnceleyin
ssh -v user@sunucu_adresi
Bu komut, bağlantı sırasında her bir adımı ayrıntılı şekilde gösterir. Buradan sorunun kaynağını anlayabilirsiniz.