RHEL SSH Anahtarı (Putty ile) ile Otomatik Güvenli Bağlantı Nasıl Yapılır?

Bu yazımızda sizlere “RHEL SSH Anahtarı (Putty ile) ile Otomatik Güvenli Bağlantı Nasıl Yapılır?” konusunu anlatmaya çalışacağım. Resimlerle zenginleştirmeye çalıştım. Kısa ve öz tutmak önceliğim. Kafanızı karıştırmak istemem. Daha önce RHEL Kurulumundan ve Pardus Server Kurulumundan bahsetmiştik. Tekrar kurulum süreçlerine dönmüyorum.

Bu arada bu yöntem sadece RHEL (Red Hat Enterprise Linux) için geçerli değil. Aynı şeyi Pardus, Debian ve Ubuntu sürümlerinde de yapabilirsiniz. Sadece aşağıda bahsedeceğim servis isminde farklılık var.

Biraz da SSH bağlantısından bahsedelim. Var olan sunucu ya da genelde Linux sistemlerine uzaktan bağlantılarda güvenliği en üst düzeyde tutmak için kullanılan bir yöntemdir. Kısaca sistem söyle işler. Sizin elinizde Private Key (ÖZEL SSH KEY) ve Public Key (PAYLAŞIMDAKİ SSH KEY) vardır. Ya da var olmalı 🙂 Öncelikle Public SSH Key’inizi sunucu ya da bağlanmak istediğiniz sistem üzerine yüklersiniz. Daha sonra Private SSH Key’inizi makinenizde güvenli bir noktaya koyarsınız. Uzaktan bağlantı yapmak istediğiniz zaman bağlantıyı sağlayan (Windows üzerinde genelde Putty, Linux üzerinde terminal veya Remmina) program önce sunucudaki Public SSH Key’i alır. Sonra sizin belirttiğiniz yerde Private SSH Key’inizi bulur ve bunları eşleştirir. Eğer doğrulama tamamlanır ise sizin sisteme girişinizi otomatik olarak yapacaktır. Tüm işlemin kısaca özeti budur. Nasıl yapıldığını öğrenelim artık.

Öncelikle buradan putty.exe ve puttygen.exe programlarını indirelim.

Putty ve Putygen programlarını sisteminize uygun olarak indirelim.
İndirmiş olduğumuz Puttygen programını çalıştırıyoruz. Önce SSH Key üretmemiz gerekiyor. Tabii bunu ilk seferde yapacağız. SSH Key oluşturulduktan sonra tekrar işlem yapmayacağız Puttygen programı ile. Generate butonuna tıklıyoruz. Üst alanda “No key” yazan yerde mouse imlecini hareket ettirirseniz işlem hızlanacaktır. Mouse imlecinizin hareketlerine göre farklı kodlar üretir sonuç olarak 🙂
SSH Key’imiz oluşturuldu. 1. alanda Public SSH Key’imizi görüyoruz. 2. alanda oluşturulan SSH Key’e anlamlı ve kafanızı karıştırmayacak bir isim verebilirsiniz. 3. alan önemli. Bu SSH Key’i şifreleyerek güvenliği bir kademe daha arttırabilirsiniz. Sonuç olarak Private Key’iniz çalınabilir. Böyle bir durumda şifrenin bilinmesi gerekir. Şifreyi bilmeden Private SSH Key’in bir anlamı yoktur. 4. alandaki buton ile Public SSH Key’i bir dosyaya kaydediyoruz. İlerde başka sunucu sistemlerine bağlanmak için elimizde durması sağlıklı olur. Olmazsa da “Load” butonu ile 5. alanda ki Private SSH Key’i yükleyip tekrar Public SSH Key’i görebiliriz.
Benim testimde ki görünümü yukarıda ki gibi olacak. Gördüğünüz gibi dosyalarımı dışarı aldım.
Artık Putty programını açıp bağlanacağım sunucunun bilgilerini girebilirim. Önce normal Password ile standart girişimizi yapacağız sisteme. Alanları doldurup solda ki alandan SSH kısmına gelelim. En son Save butonuna tıklayacağız.
Putty programının tanıdığı haliyle *.ppk uzantılı dosyayı yani Private SSH Key’imizi Putty üzerine gösteriyoruz. En son üstte gösterdiğim şekliyle Save butonuna basarsanız her seferinde uğraşmamış olursunuz. Putty üzerinde bu bağlantı bilgileriniz güvenli olarak duracaktır.
Resimde görebileceğiniz gibi Private SSH Key’imizi tanıdı. Ancak sunucu üzerinde Public SSH Key’imiz olmadığı için doğrulama yapamadı ve uyarısını verdi. Sırayla Public SSH Key’imizi tanıtalım.
Sisteme hangi kullanıcı ile bağlanacak isek o kullanıcı bilgileri ile terminal ekranına ulaşıyoruz. Daha sonra “.ssh” klasörüne gireceğiz. Eğer klasör yok ise bu klasörü sudo mkdir .ssh ile oluşturabilirsiniz. ls -a ile klasör içeriğini göstereceğiz. Sizin sisteminizde daha önceden oluşturulmuş bir dosya olabilir. Silmenize gerek yok. Ya da dosya yoksa sudo touch authorized_keys komutu ile oluşturalım ve sonrasında sudo vi authorized_keys ile editleme işlemine geçelim.
Açılan dosya üzerinde klavyeden “i” harfine basalım ve Puttygen üzerinden Public SSH Key metnini kopyalayıp Putty üzerinden açtığımız terminal ekranına kopyalayalım. Key’in birebir aynı olmasına dikkat edin. Genelde yapılan hata ise “i” harfine basmadan kopyala yapıştır yapılması. En baştaki ssh kelimesinin ilk harfini kopyalayamadığı için problem yaşayabilirsiniz. Dikkat!
ESC tuşuna basıp klavyeden iki nokta üst üste ile komutu yazmaya başlıyoruz.:wq bu kadar 🙂 Write and Quit.
SSH servisini yeniden başlatıyoruz. sudo systemctl restart sshd bu komut Debian türevlerinde sudo systemctl restart ssh olarak işlem görüyor. Yani sadece servis adı farklı.
Public SSH Key’imizi sistemimize tanıttık. Artık SSH servisinin ayarlarını yapma zamanı. Bunun için sudo nano /etc/ssh/sshd_config komutunu kullanarak ayar dosyamıza giriyoruz. Nano ya da Vi kullanmanızda farklılık yok. Ben sadece çeşit olsun diye bu sefer nano ile açtım.
Açılan SSH ayar dosyasında 3 nokta da değişiklik yapacağız. Öncelikli olarak sizin tercihinize kalmış olarak SSH bağlantısında root girişini kapatıyoruz. Şiddetle tavsiye ederim. PermitRootLogin no olacak. 2. olarak authorized_keys dosyasına izin veriyoruz. Bunu aktif hale getirmek zorunda değilsiniz. farklı isimlerde kullanabilirsiniz. Ancak bağlanırken parametre belirtmeniz gerekiyor. Çok kullanıcılı bir sistemle çalışmıyorsanız bence gerekli değil. Eğer sisteme 10-15 kişi ve ya takım müdahale ediyor ise onların Public SSH Key’lerini kontrol etmek çok zor olur. Bu yüzden isimlendirme yapılabilir. Son olarak sisteme Password ile girişi artık kapatabiliriz. Bundan böyle SSH bağlantısı yapılırken PasswordAuthentication işlemini yapmayacağız. Yoksa bu kadar işlemi niye yapıyoruz 🙂
Daha önce olduğu gibi SSH servisini yeniden başlatıyoruz. sudo systemctl restart sshd bu komut Debian türevlerinde sudo systemctl restart ssh olarak işlem görüyor. Yani sadece servis adı farklı. Tekrar hatırlatmak istedim. Dikkat!
Artık işlemlerimizi bitirdik. exit yazarak sistemden çıkıyoruz. Aşağıda tekrar bağlanırken SSH Key yardımı ile bağlanmış olacağız.
Görüldüğü üzere bağlantımız başarılı. Public SSH Key’in yanında şifremizi de kontrol etti ve bize doğrulamamız için sordu. Bu şifre sistem şifreniz değil. Dikkat! Puttygen üzerinde SSH Key oluştururken kullandığımız SSH Key’in şifresi.

Evet buraya kadar her şey yolundaysa, bundan sonra kendi makinenizden güvenle sisteminize bağlanabilirsiniz.

Bir sonraki yazımızda aynı işlemi Linux makinemizden yapacağız. Yani Putty kullanmadan, doğrudan Linux Terminal üzerinden SSH bağlantısı yapacağız. Dilerim sizlere RHEL SSH Anahtarı (Putty ile) ile Otomatik Güvenli Bağlantı Nasıl Yapılır? yazım ile yardımcı olabilmişimdir. Bol Linux’lü günler dilerim.