SSH, Secure Shell protokolünün kısaltmasıdır. Türkçe anlamı, Güvenli Kabuk olarak geçmektedir. Bir bilgisayar ile uzak bir bilgisayar arasında güvenli bir bağlantı kurulum yapılmasını sağlayan bir ağ protokolüdür. SSH protokolü ile birlikte bir kişi, bağlanacağı uzak sunucuya erişim sağlaması durumunda sunucu için de istediği şekilde yönetimi sağlayabilir.
SSH bağlantısı yapılması durumunda bağlanan kişi aşağıdaki işlemleri gerçekleştirebilir.
Sunucu dosya ve klasör yönetimini gerçekleştirebilir.
klasör ve dosyalar da erişim izinlerini değiştirebilir.
Sunucuda bulunan dosyaların içeriklerini değiştirebilir.
Bunların yanı sıra sunucu üzerinde her türlü işlemi gerçekleştirebilir.

Kimi zaman kullanıcılar, SSH ile FTP bağlantısını aynı olduğunu düşünebilir ancak, SSH ile FTP protokolleri farklıdır. FTP protokolü ile birlikte sadece dosya yönetimini gerçekleştirebilirken, SSH protokolü ile sunucuya bağlanmanız durumunda sunucu içerisindeki tüm dosya, uygulama gibi sunucunun tamamında bir yönetime sahip olursunuz.

Bir sunucuya SSH bağlantısı yaptıktan sonra eğer ki bir kod bilginiz bulunmuyorsa mutlaka yazacağınız kodu bir kaç sayfadan araştırmasını yaparak sunucunuz da kodu çalıştırınız.

SSH bağlantıları genel olarak VPS sunucuya sahip kullanıcılar tarafından erişim yapılabilmektedir. SSH bağlantısı ile birlikte karşınıza siyah bir terminal sayfası gelecektir. Bu terminal görüntüsünü merak eden okurlarımız, windows işletim sistemine sahip bilgisayarlarından  Başlat > Arama çubuğuna cmd yazarak nasıl bir ekran geleceği hakkında bilgi edinebilirler.

Web sitesine sahip olan kullanıcılar kimi zaman sitelerine SSH bağlantısı yapmak için hosting firması ile iletişime geçebilmektedir. Ya da kullanmış oldukları Magento tarzı web yazılımları için SSH bağlantısı ihtiyacı duyabilirler.  Ancak paylaşımlı hosting sunucularında hosting firmaları güvenlik sebebi ile SSH bağlantısına izin vermemektedirler.  Bu nedenle Magento gibi SSH bağlantısına ihtiyaç duyabileceğiniz web yazılımlarını kullanmak istemeniz durumunda web sitelerinizi VPS sunucularında barındırmayı tercih etmeniz önerilir. VPS sunucu tercih eden web site sahipleri, ayrıca web sitelerini tek bir sunucu da barındıracağı için sitelerinde de ciddi derecede bir performans artışı sağlayabilirler.

Bir den fazla web siteniz var ise ve aynı zaman da SSH bağlantısı yaparak sunucu yönetimi konusunda bir bilgi ya da tecrübeniz bulunmuyorsa, Bayi Hosting paketlerini tercih edebilirsiniz. Bayi hosting paketleri sayesinde satın alacağınız pakete göre birden fazla web siteleriniz için, her bir web sitesine özel cPanel ya da Plesk panel açabilirsiniz. Ayrıca bayi hosting paketi sayesinde hosting satışı yaparak da para kazanabilirsiniz.

SSH Ne İşe Yarar?

SSH protokolü, bilgisayar / sunucu ya da sunucu / sunucu bağlantılarının yapılmasını sağlayan bir ağ protokülüdür. Bu protokol sayesinde Linux veya MacOS işletim sistemine sahip tüm sunuculara SSH bağlantısı ile erişim sağlayabilirsiniz. Windows işletim sistemli bir bilgisayara sahipseniz de Putty programı aracılığıyla SSH bağlantısı yaparak sunucuya erişebilirsiniz.

SSH protokolü, Berkeley, rlogin, rsh ve rexec gibi protokollerin yerini almak amacıyla tasarlanmıştır. Bu protokoller genel olarak sunucu parolalarını düz bir metin olarak yani şifreli olarak göndermediği için bir güvenlik sorunu yaratıyordu ve sunucu böylelikle savunmasız bir şekilde kalıyordu.

SSH protokolü, ilk kez 1995 yılında Finlandiya’ da Helsink’ li Teknoloji Üniversitesi’ nde araştırmacı olan Tatı Ylonen tarafından tasarlanmıştır. SSH protokolünün amacı sunucu üzerinde gülü bir kimlik doğrulamasını sağlayarak sunucu gizliliğe önem vermektir.

SSH Protokolü Nasıl Çalışır?

Linux ve Mac cihazlarından birini kullanıyorsanız SSH bağlantısı yapmanız oldukça basittir. Ancak Windows işletim sistemli bir cihaz kullanıyorsanız SSH bağlantısı yapabilmeniz için bir program kullanmanız gerekmektedir. Windows işletim sistemlerinde SSH bağlantısı için en çok tercih edilen program Putty programıdır. Bu program sayesinde sunucuya SSH bağlantısını kolay bir şekilde yapabilirsiniz.
Linux ya da Mac cihazınızda SSH bağlantısı yapmak için Terminal sayfasını açmanız ve aşağıdaki komutu yazmanız yeterli olacaktır.

ssh {user}@{host}

SSH : Kullanılan protokol
User : Sunucu kullanıcı adınız
Host : Sunucu ip adresiniz

Windows işletim sisteminde Putty ile bağlantı yapmak için aşağıdaki adımı gerçekleştirmeniz gerekmektedir.
Programı açınız ve Host Name (or IP Adress) kısmına sunucu adınızı yazınız.
Port : 22
Connection Type : SSH
Yukarıdaki bilgileri doldurduktan sonra Open butonuna basabilir ve daha sonrasında terminalden şifrenizi girerek SSH bağlantısını gerçekleştirebilirsiniz.

SSH bağlantısı yaparak erişim sağladığınız sunucunuz da aşağıda yer verilen bazı komutları ihtiyaç doğrultusunda kullanım yapabilirsiniz.

mkdir : Yeni bir dizin oluşturma komutu
rmdir : Varolan bir dizini silebilirsiniz.
cd : Belirtilen dizine geçiş yapabilirsiniz.
cd.. : Bir üst dizine geçiş yapabilirsiniz.
Rm : Dosya silme komutudur.
pwd : Bulunduğunuz dizini görüntüleyebilirsiniz.
whatis : Belirtilen komutun açıklamısını görüntüleyebilirsiniz.
passwd : SSH şifrenizi güncelleyebilirsiniz.
who : Sunucuya kimlerin bağlı olduğunu görüntüleyebilirsiniz.
last : Bu komut ile hesabınızdaki son bağlantıyı görüntüleyebilirsiniz.

Şifreleme Teknikleri

SSH’ kullanımının en büyük avantajı kullanıcı ile host arasında transfer edilen bilgilerin şifreli olarak gönderilmesini sağlamaktadır. SSH ile birlikte kullanılan 3 farklı şifreleme teknolojisi bulunmaktadır. Bunlar ; Simetrik Şifreleme, Asimetrik Şifreleme ve Hashing yöntemleridir. Aşağıda bu şifreleme yöntemleri ile ilgili olarak kısa bilgilere yer verilmiştir.

Asimetrik Şifreleme

Asimetrik şifreleme yöntemi, şifreleme ve şifre çözme işlemleri için 2 farklı anahtar kullanmaktadır. Bunlarından birisi public key bir diğeri ise, private key olarak bilinmektedir.
Public key adından da anlaşılabileceği gibi herkese açıktır. Public key yüklediğiniz sunucular, private key olan kullanıcılara giriş izni verebilmektedir. Yani Public key i herkes ile paylaşabilirsiniz. Ancak Private key olan şifreli içerikler de sadece private key yetkisine sahip kişiler erişebilir. Ancak public key yetkisine sahip kişiler, private key ile şifrelenmiş içeriklere erişim yapamazlar.

Asimetrik şifreleme ile ilgili olarak aşağıda avantaj ve dezavantajları için yer verilmiştir.

Asimetrik Şifreleme avantajları :

  • Kimlik doğrulama ile birlikte gizlilik sağlar.
  • Anahtar dağıtımı basit olmasından dolayı sistem de anahtar karmaşası yaşanmaz.
  • Simetrik şifrelemeye göre çok daha güvenlidir.
  • Anahtarın çalınma ihtimali çok düşüktür.

Asimetrik şifreleme dezavantajları :

  • Çok fazla CPU kullanımına neden olur.
  • Simetrik şifrelemeye göre çok daha yavaş bir şekilde çalışmaktadır.

Simetrik Şifreleme

Simetrik şifreleme, hem mesajın şifrelenmesini hem de şifrelenen mesajın çözülmesini sağlayan bir şifreleme türüdür. Hem client hem de host tarafından şifrenin çözülebilmesi için gizli anahtar kullanılmaktadır. Simetrik şifreleme aynı zaman da paylaşılan anahtar ve paylaşılan gizlilik olarak da adlandırılmaktadır. Çift anahtar kullanıldığı için bir anahtar sayesinde diğer anahtar da hesaplanarak kolaylıkla bulunabilir.
Simetrik şifrelemelerde eğer ki bir anahtar başkalarının eline geçmesi durumunda tüm şifrelenmiş metinlere kolaylıkla erişim sağlayabilir.
Simetrik şifreleme için aşağıdaki avantajları ve dezavantajlarına yer verilmiştir.

Simetrik şifreleme avantajları :

  • Şifreleme oldukça hızlıdır.
  • Anahtarlar oldukça kısadır.
  • Daha güçlü şifreler oluşturulmasında öncü olarak kullanılabilir.
  • Kullanımı kolay ve anlaşılabilirdir.
  • Ayrıca bu şifreleme donanım ile birlikte kullanılabilir.

Simetrik şifreleme dezavantajları :

  • Anahtarın saklanması zor olduğundan güvenlik sorunu yaratabilir.
  • Anahtara sahip olan herkes veriye erişebilir.
  • Anahtara sahip olan kişiler verileri değiştirebilir.

Hashleme

Hashleme, SHA olarak’ da geçmektedir. Secure Hash Algorithm’ nın kısaltmasıdır ve Türkçe anlamı Güvenli Karma Algoritmalar olarak da gelmektedir. NASA tarafından geliştirilmiş bir kriptografik özetleme fonksiyonudur. Bu algoritma sayesinde kriptolanan bilgiler, daha sonrasında tekrar çözümlenebilir ve ilk haline yani orjinal haline geri getirilebilir.
SHA-0, SHA-1, SHA-2, ve SHA-3 olarak dörde ayrılmaktadır. SHA algoritmaları, belirli güvenlik açıkları dikkate alınarak geliştirilen algoritmalardır ve bununla birlikte kriptolama fonksiyonlarına da sahiptirler.
SHA 256, 384 ve 512 bit gibi farklı protokolleri genel olarak Pos ve E-imza gibi bankacılık cihazlarında tercih edilmektedir.

SSH Anahtarları ile Güçlü Doğrulama

Günümüzde parola doğrulamaları yeterince güvenli bir doğrulama aracı maalesef değildir. Bunun sebebi de yapılan Brute Force saldırılarında bir çok şifreler denilme yanılma yöntemi ile ya da çeşitli şifre kombinasyon listeleri sayesinde bir kaç saat içerisinde çözülebilmektedir. Bu süre güçlü sunucu yada bilgisayarlarda daha da kısa sürebilmektedir.

SSH ile bir uzak sunucuya bağlantı yaptığınız da genellikle bir kullanıcı adı ve parola girişi yaparak sunucuya erişim sağlayabilirsiniz. Ancak belirlemiş olduğunuz bir parolayı unutabilir ya da yazacağınız şifreyi kısıtlı bir şekilde oluşturabilirsiniz.
SSH anahtar kimlik doğrulaması ile şifrelenmiş bir parola standart oluşturduğunuz paroladan çok daha güvenli olacaktır. SSH anahtar kimlik doğrulaması ile oluşturulan güçlü parolalar, standart seviyede güçlü parolalardan çok daha güvenli ve güçlüdür.

Bir SSH anahtarı oluşturmak için aşağıdaki adımları gerçekleştirebilirsiniz.

  • Sunucuya erişim yapmak istediğiniz bilgisayarınız da bir terminal penceresini yönetici olarak açınız.
  • Daha sonrasında SSH-keygen yazınız.
  • Varsayılan olarak (~ / .ssh / id_rsa) gelecektir. Enter tuşuna basarak varsayılan seçeneği seçmeniz önerilir.
  • Daha sonrasında sizden bir parola istenilecek özel karakter ve çift kombinasyon ile oluşturulabilen karakterlerden bir parola belirleyiniz.
  • Parolanızı yazdıktan sonra Enter tuşuna basarak anahtarınızı kullanmaya başlayabilirsiniz.

Oluşturulan Anahtarı Sunucuya Kopyalama :

  • Anahtarınızı uzak sunucuya kopyalamak için ssh-copy-id USER @ Server_IP komutunu terminale yazınız.
    User : Sunucu kullanıcı Adı
    Server_IP : Sunucu IP adresi
  • Daha sonrasında sizden sunucu şifrenizi girmeniz istenilecektir. Sunucu şifrenizi giriniz.
  • Kimlik doğrulama işlemi başarıyla tamamlanmış ve SSH anahtarını kopyalayıp sunucu da normal bir şekilde oturum açmaya başlayabilirsiniz.
  • Oturum açtığınız bilgisayar ile sunucudaki anahtar eşleştiği için artık doğrudan oturum açabileceksiniz.

SSH Kullanıcı Kimlik Doğrulaması

SSH ile bir sunucuya bağlantı kurmak istediğinizde, bağlantı kurmak istediği sunucuya erişim yetkisinin olduğunu kanıtlaması gerekmektedir. Aksi taktirde sunucu giriş bilgilerine sahip değil ise bağlantı kurmak istediği sunucuya erişim sağlayamaz.
Kullanıcı, sunucuya erişim yapabilmesi için aşağıdaki işlemleri sağlaması durumunda erişim yapabilir.

  • Kullanıcı sunucuya giriş yaparken sunucu kullanıcı adı ve parolası ile giriş yapabilir.
  • Kullanıcı sunucuya tanıtılmış özel anahtarı bildiğinini ve ortak anahtarın listesinde yetkisi olduğunuz kanıtlarsa sunucuya erişim sağlayabilir. Sunucu içerisinde yetkilendirme listesini sunucu içerisinde .ssh / yetkili_keys kodu ile yapabilir.

SSH ile SSL/TLS Farkları

SSH ve SSL/TLS ağ üzerinden veri transferlerinde taşıma katmanlarında güvenlik amacıyla tasarlanmış 2 farklı protokoldür. Bu iki katman birbirine her ne kadar benziyor olsa da farklılıklar bulunmaktadır.

SSH, bilgisayar ile uzak sunucu arasında bağlantı kurulmasına olanak sağlayan bir protokoldür. SSH bağlantısı sayesinde erişim yaptığınız sunucu üzerinde tüm yönetim işlemlerinizi gerçekleştirebilirsiniz. İlk zamanlar sadece Unix tabanlı işletim sistemlerinde kullanılırken artık Windows işletim sistemli cihazlar üzerinden de erişim yapılabilmektedir.
SSH protokolü, TCP bağlantı noktası 22 portunu kullanmaktadır. SSH protokolü ile birlikte uzak bağlantılar için güvenli olmayan protokollerin yerini alması amacıyla tasarlanmış bir protokoldür.

SSL / TLS aslında 2 farklı protokoldür. Ancak yapmış oldukları işlem aynı olduğu için bu protokolleri tek olarak ele alıyoruz. Her iki protokol de aktif olarak tercih edilmektedir. Ancak TLS zamanla SSL’ in yerini almaktadır. SSL / TLS bağlantıları,i web sitelerinde güvenlik sağlamak amacıyla dijital sertifikalar kullanmaktadır.

SSH Protokol özellikleri

  • 22 numaralı bağlantı noktasını kullanır.
  • Bir sunucuda yer alan kod satırlarının güvenli bir şekilde yürütülmesi için kullanılır.
  • Güvenli bir bağlantı yapılabilmesi için kimlik doğrulama sistemi kullanılır.
  • Bir uzak bağlantı protokolüdür.
  • Bilgisayar ile sunucu arasındaki kimlik doğrulama sürecini takip eder.

SSL / TLS Protokol özellikleri :

  • 443 numaralı bağlantı noktasını kullanır.
  • Telefon numarası, T.C kimlik numarası, mail adresi, kullanıcı adı gibi kişisel verilerin güvenli bir şekilde iletilmesi
  • için kullanılmaktadır.
  • Kimlik doğrulaması için x509 dijital sertifika kullanır.
  • Bir güvenlik protokolüdür.
  • Dijital alışverişlerde kimlik doğrulama ve kullanıcı verilerinin güvenliğinden sorumludur.