Secure Shell protokolü kısaca SSH, bir bilgisayardan uzaktaki bir bilgisayara güvenli bağlantı kurmanın bir yoludur. Protokol güçlü doğrulama seçeneklerine ve bilgisayarlar arası iletişim için güçlü şifreleme yöntemlerine sahiptir. SSH sahip olduğu bu özellikler sayesinde hem telnet ya da rlogin gibi korumasız protokollere hem de FTP gibi korumasız dosya transfer protokollerine göre önemli avantajlar sağlar. SSH üzerinden gerçekleştirilen bağlantı ve dosya paylaşımı güvenli olduğu gibi aynı zamanda otomatikleştirilebilmektedir. Bunun yanı sıra meydana gelen problemler uzaktan bağlantı ile çözülebilir, ağ yapısı ya da diğer kritik sistem bileşenleri yönetilebilmektedir.
SSH Protokolü Nasıl Çalışır?
Protokol kullanıcı-sunucu modelinde bir bağlantıdır. SSH ile kullanıcılar SSH sunucularına bağlanır. Kullanıcı bağlantı kurulumunu başlatır ve SSH sunucusunda kimliğini doğrulamak için public key şifresini kullanır. Kurulum aşamasından sonra SSH protokolü kullanıcı ve sunucu arasındaki gizliliği ve veri güvenliğini sağlamak için güçlü simetrik şifreleme ve hash algoritmaları kullanır. 2006 Yılından beri Internet Engineering Task Force tarafından geliştirilmiş olan SSH-2 protokolü kullanılmaktadır. Bu yeni protokol daha önce 1995 yılında Tatu Ylönen tarafından geliştirilen SSH protokolüne göre daha güçlü gizlilik ve koruma sağlamaktadır. Ayrıca SSH-2, ilk sürümden farklı olarak Diffie-Hellman key exchange’i kullanmaktadır.
SSH Anahtarları ile Güçlü Doğrulama
SSH’da doğrulama yapabilmek için farklı seçenekler bulunur. Ancak en çok tercih edilen yöntemler şifreler ve public key doğrulamalarıdır. Public key doğrulaması özellikle otomasyon için tercih edilir ve genellikle sistem yöneticileri tekli giriş için bu yöntemi kullanmaktadır. Bu yöntemde biri public yani açık diğer private yani gizli olmak üzere iki şifreli anahtar bulunur. Public key, sunucuya erişmeyi doğrular ve private key sahibine sunucuya erişim izni verir. Doğrulama için kullanılan bu anahtarlar SSH anahtarları olarak bilinmektedir. Bu yöntemin asıl kullanılış amacı otomasyonu güvenli hale getirmektir. SSH anahtarlarının yönetimi oldukça önemlidir. SSH anahtarları sunucuya erişmede kullanıcı adı ve şifre gibidir.
Veri Bütünlüğünü Koruma
Kullanıcı ile sunucu arasında SSH bağlantısı gerçekleştiğinde, veri kurulum aşamasında belirlenen parametreler doğrultusunda şifrelenir. Kurulum esnasında kullanıcı ve sunucunun anahtar kullanımı için simetrik şifreleme algoritmasının üzerinde karara varır. İletişim esnasında taraflar arasındaki trafik AES (Advanced Encryption Standart) gibi dünyaca kabul edilen güçlü şifreleme algoritmaları ile şifrelenmektedir. SSH protokolünde ayrıca transfer edilen verinin bütünlüğünü korumak için SHA-2 (Standart Hashing Algorithm) gibi algoritmalar da yer almaktadır.
SSH ile SSL/TLS Farkları
Secure Socket Layer (SSL)’ı güncelleyen ve Transport Layer Security (TLS) protokolü, ağ üzerinde veri transferlerinde taşıma katmanına güvenlik getirmek üzere tasarlanmıştır. SSH protokolü taşıma katmanında ya da bir üst katmanda çalışabilir ancak iki protokol arasında önemli farklar bulunmaktadır. Her iki protokolde şifrelenmiş anahtarlar kullanılan TLS sadece sunucu tarafında doğrulama için tek bir anahtar çifti kullanmaktadır. SSH da ise her bağlantıda doğrulama için farklı bir anahtar çifti bulunur. Yerel makineden sunucuya bağlanırken ilk anahtar kullanılır. İkinci anahtar ise sunucuya bağlanan yerel makine doğrulamak için gerekir.
SSH ile TLS arasındaki önemli farklardan bir tanesi de TLS’in doğrulama yapmadan şifreli bağlantıya ya da doğrulama yapılmış şifresiz bağlantıya izin vermesidir. SSH ise tüm bağlantılarda doğrulama ve şifreleme gerçekleştirir. SSH, bilgi işlem departmanı çalışanlarına ya da sistem yöneticilerine uzaktaki kullanıcıyı yönetebilmek için güvenli bir mekanizma sunar. Kullanıcı ile sunucu arasında bağlantının doğrulanması yerine cihazların kendisi doğrulanmaktadır. Bu sayede sistem yöneticileri known_host dosyasına anahtar çifti ekleme ya da çıkarma gibi SSH konfigürasyonlarını değiştirerek uzak sistemlere kolay ve güvenli bir bağlantı sağlar. SSH sunduğu avantajlar sayesinde günümüzde uzak bağlantılar için en çok tercih edilen protokoldür.