Putty Windows ortamında Linux sunuculara bağlanmak için en sık kullanılan ssh client yazılımlarından biri. Linux sistemlerde olduğu gibi putty ile de sunuculara her seferinde şifre girmeden bağlanabiliyoruz. Bunun için public-key adı verilen bir güvenlik sistemi kullanılıyor. Temel mantık şifre yerine dosya kullanmaya dayalı. Tabi istersek güvenlik için bu dosyayı da şifreleme şansımız var. Linux ortamında bu güvenlik sistemini kullanmak çok kolay.
ssh-keygen -t rsa
Komutuyla kendi sunucumuzda bir private key oluşturuyoruz. Ardından istediğimiz kadar sunucu için
ssh-copy-id root@uzaksunucuadresi
Komutuyla istediğimiz kadar uzak sunucuya public key yükleyerek şifresiz giriş yapılandırması yapabiliyoruz. Bu adımlardan sonra Linux ortamında:
ssh root@uzaksunucu
Komutu ile şifresiz erişim sağlayabiliriz.
Peki aynı işlemi Windows ortamında Putty ile bağlanacağımız zaman nasıl yapabiliriz. Bunun bir kaç yöntemi var fakat en kolayı PuttyGen ile dosyaları oluşturup sunucuya yüklemek.
Öncelikle PuttyGen programını Putty’nin sitesinden indiriyoruz. https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Ardından PuttyGen i çalıştırıyoruz. Alttaki seçeneklerden RSA seçili olduğudan emin olun. İstersek keycomment kısmından isim verebiliriz. Sonrasında Generate tuşuna basarak mouse’u ekranda gezdiriyoruz. Böylece random bir key oluşturuluyor.
İşlem tamamlandığında alttaki gibi bir ekran çıktısı alıyoruz.
En üstteki ssh-rsa ile başlayan alan bizim public-key değerimiz. Bu bağlanacağımız sunuculara vermemiz gereken key. Bizim şifremiz yerine geçen dosya değil. Bunu oluşturup kaydetmek için alttaki Save private key
tuşuna basıyoruz ve ppk uzantılı olarak kaydediyoruz. Save public key
yaparak da yukarıdaki değerin aynısını dosya olarak kaydedebiliriz. Birden fazla sunucuya kurulum yaparken işimize yarayabilir.
Tekrar etmek gerekirse Save Private Key ile kaydettiğimiz dosya bizim şifremiz yerine geçiyor. Public Key’i ise bağlanacağımız sunuculara giriyoruz.
Şimdi şifreli olarak sunucumuza bağlanalım ve public key değerimizi girelim. Sunucuya normal olarak bağlandıktan sonra alttaki komutları çalıştırıyoruz:
mkdir .ssh
nano .ssh/authorized_keys
Ardından puttygen’deki ssh-rsa ile başlayan satırı tamamen (sağ tık select all, sağ tık copy) seçerek sunucuya kopyala yapıştır yapıyoruz. Sonuç şunun gibi olmalı:
Sonrasında Ctrl+X Y
diyerek kaydedip çıkıyoruz. Artık sunucu tarafındaki ayarlar tamamlandı. Putty bağlanma aşamasında private key dosyasını kullanması gerekiyor. Bunun için Connection > SSH > Auth
kısmından oluşturduğumuz private key dosyasını seçiyoruz:
Artık Open diyerek şifresiz bir şekilde sunucuya bağlanabiliriz. Her seferinde bu dosyayı göstermek istemiyorsanız en üstteki save’ın ayarlarından Default Settings’i seçerek Save yapabilirsiniz.
Artık public key değerini yapıştırdığımız her sunucuya şifresiz olarak bağlanabiliriz.
Bir diğer yöntem de ssh-keygen ile gerekli public/private key çiftini sunucu tarafında oluşturup bunları WinScp gibi yazılımlarla Windows’a indirmek. Ardından puttygen ile ppk formatına çevirip kullanmak. Bu işlem biraz daha uzun olduğu için burada anlatmadım. Amazon AWS bulut hizmeti bize bu public/private key çiftini kendi veriyor. Bunları da puttygen ile çevirip bu yönteme benzer bir şekilde kullanıyoruz.