Parolasız ssh bağlantısı

Eger paronayak biriyseniz parolalarınızı özel karakterler kullanarak, her hesap için farklı parolalar kullanarak o hesapları güvenli hale getirmeye çalışırsınız ama her seferinde bu parolaları hatırlamak ve yazmak zorunda kalırsınız ve birde bu işi sık sık yapıyorsanız uzun parolalar ölüm gelmeye başlar. Şimdi ssh ile uzak bilgisayarınıza parola gerekmeden nasıl bağlanabilirsiniz onu görelim :)

SSH bağlantılarında ya bağlantı için ya bir kullanıcı ve parola gerekir yada parola yerine asimetrik anahtar çiftleri kullanılabilir.

Public key ile kimlik doğrulama aşağıdaki resimde gösterildiği gibi oluyor(Resmi DigitalOcean’dan aldım)

ssh public key auth

Public key authentication anlaşıldıysa şimdi özel ve açık anahtarımızı nasil oluşturacağız onu anlatmaya çalışayım.

SSH bağlantısı için RSA key pair oluşturmak :

$ ssh-keygen

Eger özel bir yol belirtmediyseniz ev dizininizdeki .ssh dizininde id_rsa ve id_rsa.pub adında iki dosya oluşturulmuş olucaktır. Bu dosyalardan id_rsa dosyası sizin private(özel) anahtarınız oluyor bu dosyayı kimseye göndermeyin ve güvenmediğiniz yerlerde barındırmayın. id_rsa.pub ise sizin public(açık) anahtarınız oluyor.Biz bu anahtarı ssh bağlantısı yapacağimiz pc ile paylaşacağız. Şimdi public anahtarımızı ssh bağlantısı kuracağımız pc ye kopyalayalım.

$ ssh-copy-id -i ~/.ssh/id_rsa.pub kullanici@uzak_ip

Bu komut bizim public anahtarımızı uzak bilgisayarın izinverilen anahtarlar listesine(~/.ssh/authorized_keys dosyasına) ekleyecektir. Artık uzak bilgisayarınıza parola girmeden giriş yapabilirsiniz.

$ ssh kullanici@uzak_ip
Parola kullanarak ssh login olma özelliğini kapatma

Uzak makinamiza parola ile giriş yapılabiliyor olması kötü niyetli kişilerin brute force atak ile parolanızı bulmalarına olanak sağlar. Bunun önüne geçmek için parola ile login özelliğini kapatıp sadece izin verilen anahtarlara sahip kişilerin giriş yapabilmesini sağlayabiliriz. Yukarıda public keyimizi uzak makinın izin verilen anahtarlar listesine eklemiştik. Şimdi ise parola ile login olma özelliğini kapatalım. Uzak makinaya bağlanıp /etc/ssh/sshd_config dosyasını açın ve PasswordAuthentication yes yazan satırı bulup PasswordAuthentication no olarak değiştirip ssh sunucusunu yeniden başlatın. Artık uzak makinaya ssh ile bağlanırken kullanıcının şifresi doğru girilse bile bağlanılamayacaktır.

Parola ile giriş yapılabilip yapılamadığını şu şekilde test edebilirsiniz.

$ ssh -o PubkeyAuthentication=no kullanici@uzak_ip

Ayrıca Bakınız: fail2ban

comments powered by Disqus