Secure Shell olarak da bilinen SSH protokolü basitçe bir bilgisayardan uzaktaki başka bir bilgisayara bağlanmaktır. Bu protokol güçlü yetkilendirme seçenekleri ile beraber iletişimi bütünüyle güvenli bir şekilde şifreler. Telnet ya da rlogin gibi güvenli olmayan giriş protokollerine ve FTP gibi güvenli olmayan dosya transfer yöntemlerine göre önemli bir alternatiftir. Protokol istemci-sunucu modelini kullanır. Bir SSH sunucusu varsayılan olarak Transmission Control Protocol (TCP) port 22’yi kullanır. SSH protokolü uzaktaki bilgisayara bağlanmak zorunda olmadığınızda ya da bağlanamadığınız durumlarda son derece kullanışlı bir protokoldür. 90’lı yılların ortalarında hayatımıza giren protokol günümüzde son derece sık bir şekilde kullanılmaktadır.
SSH’ın Ortaya Çıkışı
SSH’ın ilk versiyonu 1995 tarafından Tatu Ylönen tarafından ortaya konuldu. Helsinki Teknoloji Üniversitesi’nde araştırmacı olan Ylönen daha sonra SSH Communications Security’i başlattı. Günümüzde SSH-1 olarak adlandırılan bu sistem artık güvenli kullanım sağlamadı için tercih edilmiyor. Günümüzdeki SSH-2 protokolü ise İnternet Mühendisliği Göre Grubu tarafından 2006 yılında ortaya çıktı. SSH-1 ile çalışmayan yeni versiyon daha güçlü güvenlik için Diffie-Hellman anahtar değişimini kullanıyor. SSH istemcileri ve sunucular genellikle AES ve Blowfish gibi şifreleme yöntemlerini kullanıyor. Ancak diğer taraftan SSH-2’nin düşünüldüğü kadar güvenli olmadığı fikri de ortaya atılmaktadır. 2013 yılında Edward Snowden tarafından yapılan bilgi sızıntısında Amerika Ulusal Güvenlik Ajansı’nın bazı SSH trafiğinin şifresini çözebildiği ortaya çıkmıştı.
SSH Protokolü Nasıl Çalışır?
SSH’ın nasıl bu kadar güvenli olduğunu anlayabilmek için öncelikle çalışma mantığını kavramak gerekmektedir. SSH gönderilecek olan veriyi önce bir paketler serisine dönüştürür. Diğer tüm paketler burada belli başlı bölümler yer almaktadır. En üst kısımda paket büyüklüğünü gösteren Packet Length bulunmaktadır. Daha sonra ise Padding Amount adı verilen bir başka byte bulunmaktadır. Üçüncü sırada Payload denilen kısım vardır ve gönderilecek veri burada yer alır. Payload sonrasında Padding ve Message Authentication Code bölümleri bulunmaktadır. Padding bölümünde anlamsız rastgele byte’lar bulunmaktadır Payload içerisinde yer alan verinin daha zor bir şekilde tespit edilebilmesi için araya rastgele veriler atılmaktadır.
Paket Transferi
Gönderilen paket standart algoritmalarla sıkıştırılmaktadır. Ancak sıkıştırılan kısma Packet Lenght ve Message Authentication Code bölümü dahil değildir. Paket bu şekilde gönderilir. Alıcı taraf paketi deşifre eder, açar ve içindeki veriyi alır. Aynı işlem her transfer de gerçekleştirilir. SSH güvenlik için transfer süresince 3 farklı veri manipülasyon tekniği kullanmaktadır. Bu teknikler Simetrik Şifreleme, Asimetrik Şifreleme ve Hashlemedir.
SSH ile Mail Hesabı Açmak
SSH ile mail hesabı açmak çok tercih edilmese de aslında son derece kolaydır ve bazı durumlarda zorunludur. Örneğin cPanel gibi yönetim panellerinin lisansının yenilenmediği durumunda mail hesabı oluşturma işlemini sadece SSH ile yapılmaktadır. Bu şekilde mail hesabını oluşturmak için öncelikle SSH bağlantısını gerçekleştirmek gerekmektedir. Daha sonraki adım da ise scripts dizine erişilmelidir. Bunun için gerekli kod aşağıdaki gibidir:
cd /scripts
Scripts dizinine erişim sağladıktan sonra mail hesabını girmek için aşağıdaki kodu girmek yeterlidir.
./addpop
Son komutu girdikten sonra yapmanız gereken tek şey mail hesabınızı yazmaktır. Gelen ekranda örneğin “mailhesabi@domain.com“ gibi kendi alan adınızla bir hesap oluşturabilirsiniz. Bu işlemi yaptıktan sonra ise bu sefer ekrana oluşturduğunuz mail hesabınızla kullanmak istediğiniz şifreyi girmeniz yeterlidir. Şifreyi girip “Enter” tuşuna bastıktan sonra mail hesabınız kullanılabilir hale gelmektedir.
Secure Shell Başka Neler İçin Kullanılır?
SSH bütün Unix, Linux ve Mac sunucularda var sayılan olarak yer almaktadır. SSH bağlantıları yerel cihaz ile uzaktaki sunucu arasında farklı tiplerde güvenli bir iletişim sağlamaktadır. Bu şekilde uzaktaki kaynaklara erişim sağlanabilir, uzaktan komut çalıştırılabilir, yazılım güncellemesi yapılabilir ve tüm yönetim faaliyetleri yerine getirilebilir. Bu işlemlerin hepsi çeşitli yazılım araçları ile yapılabildiği gibi aynı zamanda terminal üzerinden direkt olarak da gerçekleştirilmektedir. Tüm bunların yanı sıra SSH ile router yönetimi, sunucu donanımı yönetimi, sanallaştırma platformları, işletim sistemleri, dosya transfer uygulamaları ve sistem yönetimi yapılabilmektedir. Kısacası sistem yönetimi için yapılması gereken hemen hemen her şeyin uzaktan yapılmasına olanak sağlamaktadır.
Platformların SSH Desteği
SSH açık bir protokol olduğu için hemen hemen bütün platformlarda yer almaktadır. Ancak özellikle Linux, Unix ve Apple’ın macOS işletim sistemi de dahil olmak üzere Berkeley Software Distribution tabanlı diğer işletim sistemlerinde bulunmaktadır. 2015 yılında OpenSSH Windows PowerShell’e port edildi ve 2018 yılında OpenSSH protokolü opsiyonel olarak Windows 10’a eklendi. Her ne kadar Unix benzeri birçok işletim sisteminde varsayılan olarak SSH kullanılırken Microsoft’un OpenSSH portunu Windows Ayarlarından aktif etmek gerekmektedir. Bir diğer açık kaynaklı uygulama ise PuTTY’dir. Windows, macOS ve Unix/BSD sistemlerinde kullanılan PuTTY aslında ilk olarak Windows için ortaya çıktı ve Windows’ta en popüler SSH seçeneklerinden birisi oldu.