SSH Public Key Nedir?
Öncelikle SSH public key kavramından biraz bahsedelim. SSH, uzaktaki bir sunucuya güvenli bir şekilde bağlanmanızı sağlayan bir protokoldür. Public key ise, bu bağlantıyı şifrelemek için kullanılan bir anahtar çiftidir. Public key, sunucuda saklanırken, private key bilgisayarınızda gizli kalır. Bu anahtar çiftleri, güvenli ve şifreli bir bağlantı kurmanıza olanak tanır. İşte tam bu noktada, bağlantıyı kurmaya çalışırken karşımıza çıkabilecek SSH public key hatalarını çözmemiz gerekiyor.
Bu hata, genellikle public key'inizi doğru bir şekilde yüklemediğinizde meydana gelir. SSH, private key'inizle eşleşmeyen bir public key gördüğünde bağlantıyı reddeder. Ancak, bu hatayı almanızın birkaç nedeni olabilir. Gelin, birlikte adım adım çözüm yollarına bakalım.
Adım 1: Public Key'inizi Kontrol Edin
İlk yapmanız gereken şey, public key'in doğru şekilde oluşturulup oluşturulmadığını kontrol etmek. Terminal ekranınızı açın ve aşağıdaki komutu kullanarak anahtarlarınızı kontrol edin:
ls ~/.ssh
Burada, `id_rsa.pub` veya benzeri bir public key dosyasının olup olmadığına bakın. Eğer yoksa, SSH anahtar çiftini oluşturmanız gerekecek.
Adım 2: SSH Anahtarınızı Oluşturun
Eğer public key dosyanız yoksa, bir tane oluşturmak için şu komutu kullanabilirsiniz:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Bu komut, RSA algoritmasıyla 4096 bit uzunluğunda bir anahtar çifti oluşturur. Anahtarın bir parçası `id_rsa` (private key) ve diğeri `id_rsa.pub` (public key) olarak kaydedilecektir. Oluşturduktan sonra, public key'inizi sunucunuza yüklemeniz gerekiyor.
Adım 3: Public Key'inizi Sunucuya Yükleyin
Şimdi, public key’inizi uzak sunucuya göndereceğiz. Bunun için şu komutu kullanabilirsiniz:
ssh-copy-id username@remote_host
Bu komut, `~/.ssh/id_rsa.pub` dosyasındaki public key'i, uzak sunucudaki `~/.ssh/authorized_keys` dosyasına ekler. Burada, `username` yerine sunucunuzdaki kullanıcı adınızı, `remote_host` yerine ise sunucunuzun IP adresini veya domain adını yazmalısınız.
Adım 4: Sunucunun SSH Yapılandırmasını Kontrol Edin
Bazen, sunucunuzun SSH yapılandırması, public key kullanımı için uygun şekilde ayarlanmamış olabilir. Sunucunuza giriş yaptıktan sonra, aşağıdaki dosyayı kontrol edin:
sudo nano /etc/ssh/sshd_config
Bu dosyada, şu satırların doğru şekilde ayarlandığından emin olun:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Eğer bu satırlar yoksa veya yanlışsa, düzeltip SSH servisini yeniden başlatmanız gerekir:
sudo systemctl restart ssh
Adım 5: Private Key’i Doğru Kullanıp Kullanmadığınızı Kontrol Edin
Eğer her şey doğru görünüyorsa ama hala aynı hatayı alıyorsanız, private key’inizin doğru şekilde kullanıldığından emin olun. `ssh` komutunu kullanırken doğru private key’inizi belirtmek için şu komutu kullanabilirsiniz:
ssh -i ~/.ssh/id_rsa username@remote_host
Adım 6: SSH Agent ile Private Key’inizi Yükleyin
Eğer private key’iniz SSH agent’ınıza yüklenmemişse, bu da bağlantı sorunlarına yol açabilir. SSH agent’ınızı başlatıp key’inizi eklemek için şu komutları kullanabilirsiniz:
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa