SSH Nedir ?
Herkese Merhabalar,
Bu haftaki yazımda elimden geldiğince SSH nedir, SSH keylerimizi nasıl oluştururuz gibi konulara değineceğim.
SSH Nedir ?
Öncelikle SSH nedir sorusu ile başlayalım:
SSH yani Secure Shell, güvenli olmayan bağlantılar üzerinde güvenli oturum açma işlemleri sağlayan şifreli bir bağlantı protokolüdür. SSH, şifreleme tekniğini kullanarak uzaktaki sunucuya giden & uzaktaki sunucudan gelen tüm iletişimlerin şifrelendiğinden emin olur.
SSH nasıl çalışır?
Şimdi SSH protokolünün nasıl çalıştığına biraz bakalım:
Eğer Linux veya Mac kullanıcısı iseniz, SSH kullanmak çok kolaydır. Ancak Windows kullanıyorsak, SSH bağlantıları açmak için bir SSH istemcisi kullanmamız gerek. Windows için en popüler SSH istemcisi PuTTY’dir.
Bu prosedürleri Mac ve Linux kullanıcısı olduğunuzu varsayarak açıklayacağım. İlk etapta terminal programınıza girin ve aşağıdaki komutu yazın.
ssh {user}@{host}
Burada,
- {user} ulaşmak istediğimiz hesabı temsil eder.
- {host} ise erişmek istediğimiz bilgisayarı simgeler. Bu bir IP (244.235.23.19) veya bir domain (www.xyzdomain.com) adresi olabilir.
Enter tuşuna bastığımızda istenilen hesaba erişimi sağlamak için şifre girmemiz gerekecektir. Şifremizi yazarken ekranda hiçbir şey çıkmıyor ancak şifremiz gönderiliyor. Şifremizi yazmayı tamamladığımızda tekrar enter tuşuna basalım. Eğer şifremiz doğruysa, uzak terminal penceresi ile karşılaşacağız.
Private ve Public Anahtarlar
Şimdi SSH protokolünde yer alan bir diğer önemli konuyu ele alalım. Anahtarlar:
SSH bağlantılarını şifreler haricinde, anahtarlar ile de gerçekleştirebiliyoruz. Bu sayede sunucuların şifrelerini bilmemiz gerekmez. Başka birilerinin sunucumuza giriş yetkisi edinmesi için şifremizi kendileriyle paylaşmak yerine, anahtarlarını sisteme eklememiz yeterli olur.
Burada çok önemli bir bilgiyi paylaşmak isterim:
Adlarından da anlaşılacağı üzere;
“Public anahtarınızı herkesle paylaşabilirsiniz. Ancak private anahtarınızı kimseyle paylaşmamalısınız. Aksi takdirde public anahtarlarınızın yüklü olduğu bütün sistemlere giriş yetkisi vermiş olursunuz.”
RSA Anahtar Çiftleri Oluşturma
Şimdi kısaca bir RSA konusuna da bakalım çünkü anahtar oluştururken kullanacağımız bir komuttur.
RSA kriptolama algoritması, Ron Rivest, Adi Shamir ve Leonard Adleman tarafından 1997'de yayımlanmıştır. Bu yöntemin amacı ileride yaygınlaşacağı öngörülen e-posta trafiğinde kişilerin kriptolu iletişim sağlamasını, ve ayrıca okunan mesajların doğru kaynaktan geldiğinin teyit edilmesini sağlamaktı. Bugün yeterince yüksek asal sayılar kullanıldığından RSA’nin kriptolama mekanizması kırılamamıştır. Bu yüzden RSA en güvenilir kriptolama mekanizmalarından biridir.
SSH Anahtar (Key) Oluşturmak
Geldik en önemli kısımlardan birine…
SSH anahtar çifti oluşturmak için pek çok program bulunuyor. Ancak Linux üzerinde bunu yapmanın standart yolu ‘ssh-keygen’ programını kullanmak.
İlk etapta yapmamız gereken şey yerel makinemizde anahtar çifti oluşturmak. Bunu aşağıdaki şekilde çok basit bir komutla yapabiliriz:
ssh-keygen -t rsa
Bu komutu girdikten sonra karşımıza birkaç soru gelecek:
Enter file in which to save the key...
- Burada bize anahtarı kaydetmek istediğimiz dosya ismi sorulur. Burada bir şey yazmadan ENTER tuşuna basmanız tavsiye edilir. Bundan sonra gelecek sorular şifre girmemiz için olacaktır:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
- Bu kısmı dilersek boş da bırakabiliriz. Boş bırakıldığında oturum açmak için herhangi bir şifre kullanmamız gerekmeyecek. Basitçe
ssh kullanici@sunucuip
komutunu girebilir ve anahtarlar düzgünce ayarlı olduğu müddetçe oturum açabiliriz. Ancak daha fazla güvenlik istiyorsak, bir parola girelim. Böylelikle uzaktaki aygıta her bağlandığımızda şifremizi girmeniz gerekecektir. - Aşamalar tamamlandıktan sonra terminalimizde böyle bir şey göreceğiz:
*** Burada herkes için oluşturulan resim ve anahtar farklı olacak.
Oluşturulan SSH keyler;
‘id_rsa ve id_rsa.pub’ olacaktır. Bu anahtarları kısaca açıklayalım:
- id_rsa özel anahtardır. Sadece yerel aygıtta olması ve bir başkasına verilmemesi gerekmektedir.
- id_rsa.pub ise uzak makineye yüklenmesi gereken anahtardır. Bu anahtar sayesinde, uzaktaki bir sunucuda aynı proje kapsamında çalışan iki kişi public anahtarlarını aynı uzak sunucuya yerleştirebilmektedir.
Public Anahtarı Uzak Sunucuya Kopyalama İşlemi
Basitçe aşağıdaki komutu yazalım:
ssh-copy-id kullanici@sunucuip
Burada ‘sunucuip’ kısmına uzak sunucunun IP adresini, ‘kullanıcı’ kısmına da bağlanılacak olan sunucunun kullanıcı adını yazdıktan sonra kopyalama işlemini de yapmış oluruz.
Umarım herkes için faydalı bir yazı olmuştur :)