Siber saldırıların, özellikle brute-force saldırılarının her geçen gün daha yaygın hale gelmesiyle, sunucunuzun güvenliğini sağlamak için güçlü yöntemler kullanmak önemlidir. SSH Key Authentication, bu tür saldırılara karşı en güvenli yöntemlerden biri olarak öne çıkar. Şifre bazlı doğrulamaya göre çok daha güvenli olan bu yöntem, neredeyse kimse tarafından tahmin edilemez ve kırılması imkansıza yakındır. Ayrıca, kurulumu oldukça kolaydır. Bu makalede, SSH key authentication’ın nasıl ayarlanacağını adım adım inceleyeceğiz.
İçindekiler
- SSH Key Nasıl Oluşturulur?
- SSH Key’inizi Linux Sunucunuza Kopyalamak (ssh-copy-id ile)
- ssh-copy-id olmadığı durumlarda key kopyalamak
- Windows’ta SSH Key Authentication Ayarlamak
- Şifre ile Giriş Yapmayı Kapatmak (İsteğe Bağlı)
1. SSH Key Nasıl Oluşturulur?
SSH Key Authentication’ı ayarlamak için öncelikle yerel bilgisayarınızda bir SSH key oluşturmanız gerekiyor. Bu key çifti, sunucunuza şifre yerine daha güvenli bir şekilde erişmenizi sağlar. SSH key oluşturmak için aşağıdaki komutu terminalde çalıştırmanız yeterli:
ssh-keygen
Bu komutu çalıştırdıktan sonra, birkaç adımda key çifti oluşturulacaktır. Bu süreçte herhangi bir ekstra ayar yapmak istemiyorsanız Enter tuşuna basarak devam edebilirsiniz. Ancak dilerseniz bir parola da oluşturabilirsiniz. Aşağıdaki gibi bir ekran ile karşılaşacaksınız:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Parola oluşturduysanız, her sunucuya erişmek istediğinizde bu parolayı girmeniz gerekecek. Oluşturulan key çifti id_rsa (özel key) ve id_rsa.pub (genel key) olarak kaydedilir.
2. SSH Key’inizi Linux Sunucunuza Kopyalamak (ssh-copy-id ile)
SSH key oluşturduktan sonra bu key’i sunucunuza kopyalamanız gerekiyor. Bu işlem için ssh-copy-id komutunu kullanabilirsiniz. Bu komut, key’inizi otomatik olarak sunucunuzun authorized_keys dosyasına ekler ve elle düzenleme yapmanıza gerek kalmaz. Aşağıdaki komut ile key’inizi sunucunuza kopyalayabilirsiniz:
ssh-copy-id user@host -p port_number
Burada, user kısmını kendi kullanıcı adınızla, host kısmını ise sunucunuzun IP adresi ya da hostname’i ile değiştirmelisiniz. Eğer bu komut başarıyla çalıştıysa, artık sunucunuza şifresiz giriş yapmayı deneyebilirsiniz:
ssh user@host -p port_number
2.1 ssh-copy-id Olmadığı Durumlarda Key Kopyalamak
Bazı sistemlerde ssh-copy-id komutu bulunmayabilir. Bu durumda key’i elle kopyalamanız gerekecek. Aşağıdaki komut, Linux sistemlerde key’inizi manuel olarak sunucuya kopyalar:
cat ~/.ssh/id_rsa.pub | ssh user@host -p port_number "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 -R ~/.ssh"
Yine, user ve host bilgilerini kendi sunucu bilgilerinize göre değiştirin. Bu komut, public key’inizi sunucunuza kopyalayıp authorized_keys dosyasına ekler.
3. Windows’ta SSH Key Authentication Ayarlamak
Windows işletim sisteminde SSH Key Authentication’ı ayarlamak, Linux ve macOS’a göre biraz farklıdır çünkü ssh-copy-id komutu Windows’ta yerleşik olarak bulunmaz. Ancak Windows 11 kullanıcıları için bu işlemi kolayca gerçekleştirebilirsiniz. Öncelikle Windows Terminal’i açın ve aşağıdaki komutla SSH key oluşturun:
ssh-keygen.exe
Bu komut, size birkaç soru soracaktır. Varsayılan dizini kullanabilir ve dilerseniz parolasız key oluşturabilirsiniz. Eğer parola ayarlarsanız, her oturum açmak istediğinizde bu parolayı girmeniz gerekecektir. Aşağıdaki gibi bir çıktı alacaksınız:
Generating public/private rsa key pair.
Enter file in which to save the key (C:Userscpynet/.ssh/id_rsa):
Key çifti oluşturulduktan sonra, id_rsa.pub dosyasını sunucunuza kopyalamanız gerekecek. Bunun için terminalde şu komutu çalıştırarak public key’inizi görüntüleyin:
cat ..sshid_rsa.pub
Ardından, aşağıdaki komutu kullanarak sunucunuza SSH ile bağlanın:
ssh.exe user@host -p port_number
Sunucunuza bağlandıktan sonra, key’inizi kaydedeceğiniz dizini oluşturmak için şu komutu çalıştırın:
mkdir -p ~/.ssh
Daha sonra bir text editörü ile authorized_keys dosyasını açarak public key’inizi bu dosyaya yapıştırın. Key’iniz artık sunucuda kayıtlı olacak.
4. Şifre ile Giriş Yapmayı Kapatmak (İsteğe Bağlı)
SSH Key Authentication kullanarak giriş yaptıktan sonra, sunucunuzun güvenliğini bir adım daha artırmak isterseniz, şifre ile giriş yapmayı tamamen devre dışı bırakabilirsiniz. Bu, sadece SSH key ile giriş yapılmasını zorunlu hale getirir ve sunucunuzun brute-force saldırılarına karşı daha dayanıklı olmasını sağlar.
Şifre ile giriş yapmayı kapatmak için, sunucunuzda sshd_config dosyasını düzenlemeniz gerekiyor:
sudo nano /etc/ssh/sshd_config
Bu dosya içinde PasswordAuthentication satırını bulun ve no olarak değiştirin:
PasswordAuthentication no
Değişikliği kaydedip dosyayı kapattıktan sonra, SSH hizmetini yeniden başlatın:
sudo systemctl restart ssh
Bu işlemi tamamladıktan sonra artık sunucunuza sadece SSH key ile giriş yapılabilecektir. Şifre ile giriş devre dışı bırakıldığı için sunucunuz daha güvenli hale gelecektir.
Sonuç
SSH Key Authentication, Linux sunucunuzun güvenliğini sağlamanın en etkili yollarından biridir. Şifre yerine key kullanarak sunucunuza erişmek, brute-force saldırılarına karşı daha dayanıklıdır ve güvenliği artırır.