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

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

Okumak 9 dakika

SSH, ağ altyapısını yönetmek, dosya aktarmak ve uzak komutlar vermek için yaygın olarak kullanılır. Bu makalede SSH protokolünün ne olduğunu, nasıl çalıştığını ve neden önemli olduğunu açıklayacağız.

SSH Nedir?

SSH, Güvenli Kabuk anlamına gelir, bu da güvenli (şifrelenmiş ve kimliği doğrulanmış) bir kabuk (komut satırı arayüzü) sağladığı anlamına gelir. SSH ayrıca dosya göndermek, programları çalıştırmak veya başka bir bilgisayardaki ayarları değiştirmek gibi başka şeyler de yapabilir.

Secure Shell, bilgisayarlara birbirleriyle nasıl güvenli bir şekilde konuşacaklarını söyleyen bir kurallar bütünüdür. Üç ana bileşenden oluşur: aktarım katmanı, kullanıcı kimlik doğrulama katmanı ve bağlantı katmanı. Aktarım kısmı, bilgisayarların birbirlerine güvenebilmelerini ve kimsenin onları gözetleyememesini veya mesajlarını değiştirememesini sağlar. Kullanıcı kısmı, yalnızca doğru kişinin diğer bilgisayara erişebilmesini sağlar. Bağlantı katmanı, bilgisayarların aynı anda komut yazmak, dosya göndermek veya program açmak gibi farklı şeyler yapabilmesini sağlar.

SSH protokolü, gizli dinleme, kurcalama, sahtekarlık veya ortadaki adam saldırıları gibi çeşitli saldırılara karşı koruma sağlar. Secure Shell ayrıca kullanıcıların şifrelerini veya verilerini bilgisayar korsanlarına veya kötü niyetli aktörlere ifşa etmeden çeşitli görevleri uzaktan gerçekleştirmelerini sağlar.

Hem istemci hem de sunucu aynı protokolü desteklediği sürece her türlü veriyi şifrelenmiş kanal üzerinden aktarır. Örneğin SSH, SCP veya SFTP kullanarak metin, ikili, ses, video veya görüntü dosyalarını aktarabilir. Ayrıca port yönlendirme veya tünelleme kullanarak grafikler, TCP/IP portları veya soketler gibi diğer veri türlerini de gönderebilirsiniz.

SSH'nin en kullanışlı özelliklerinden biri tünel veya proxy oluşturma yeteneğidir. Bu özellik, kullanıcıların ağ trafiğini Secure Shell üzerinden bir bağlantı noktasından veya adresten başka bir bağlantı noktasına veya adrese yönlendirmesine veya yönlendirmesine olanak tanır. Bu, güvenlik duvarlarını atlamak, kısıtlı kaynaklara erişmek, güvenli olmayan protokolleri şifrelemek veya ağ etkinliğini gizlemek için yararlı olabilir.

SSH protokolünün tarihçesi nedir?

Güvenli oturum açma protokolü 1995 yılında Finlandiyalı bilgisayar bilimcisi Tatu Ylönen tarafından oluşturulmuştur. Diğer bilgisayarlara bağlanmanın, güvenli olmayan ve kolayca hacklenebilen eski yollardan daha iyi bir yolunu yapmak istedi. SSH'nin ilk sürümünü (SSH-1) açık kaynak lisansı altında özgür yazılım olarak yayınladı. Daha sonra SSH ürünlerini geliştirmek ve pazarlamak için bir şirket kurdu.

SSH ilk olarak Secure Remote Login (SRL) olarak adlandırıldı, ancak SRL zaten başka bir program tarafından kullanıldığı için Secure Shell (SSH) olarak değiştirildi. Bir başka eğlenceli gerçek de SSH'nin GoldenEye adlı James Bond filminden esinlenilmiş olmasıdır; filmde bir bilgisayar korsanı uydu kontrol sistemine girmek için benzer bir araç kullanmaktadır.

1996 yılında, Björn Grönvall liderliğindeki bir grup geliştirici, Secure Shell'in önceki bir sürümünün kaynak koduna dayanan OpenSSH adlı ücretsiz bir SSH uygulaması üzerinde çalışmaya başladı. OpenSSH 1999 yılında OpenBSD işletim sisteminin bir parçası olarak piyasaya sürüldü ve kısa sürede SSH'nin en popüler uygulaması haline geldi. OpenSSH, SSH'ye SSH-2 (geliştirilmiş güvenlik ve işlevselliğe sahip protokolün gözden geçirilmiş bir sürümü) desteği, X11 iletimi, aracı iletimi ve IPv6 desteği gibi birçok özellik ve geliştirme ekledi.

2006 yılında Internet Engineering Task Force (IETF), Secure Shell protokolünü bir Internet standardı olarak standartlaştıran bir dizi RFC yayınladı. RFC'ler çekirdek protokolü, aktarım katmanı protokolünü, kullanıcı kimlik doğrulama protokolünü, bağlantı protokolünü ve çeşitli uzantıları ve algoritmaları kapsar.

SSH nasıl çalışır?

Şifreli uzaktan oturum açma, iki bilgisayara sahip olarak çalışır: bir istemci ve bir sunucu. İstemci, sunucuya bağlanmak için kullandığınız bilgisayardır. Sunucu ise üzerinde işlem yapmak istediğiniz bilgisayardır. İstemci ve sunucu birbirleriyle konuşmak için SSH adı verilen özel bir program kullanır.

İlk adım , istemciye hangi sunucuya bağlanmak istediğinizi söyleyerek bağlantıyı başlatmaktır. Bunu terminalinize aşağıdaki gibi bir şey yazarak yapabilirsiniz:

ssh kullanıcı adı@ip_adresi

Bunun anlamı: Secure Shell kullanarak bu IP adresi (internetteki bir bilgisayarı tanımlayan bir numara) ile bu kullanıcı adını (bilgisayardaki bir kullanıcıyı tanımlayan bir ad) kullanarak sunucuya bağlanmak.

İkinci adım, açık anahtarlı kriptografi kullanarak sunucuya güvenip güvenemeyeceğinizi kontrol etmektir. Bu, sadece iki kişinin anlayabileceği gizli kodlar oluşturmak için matematik kullanmanın bir yoludur. Sunucunun iki kodu vardır: bir açık anahtar ve bir özel anahtar. Genel anahtar herkesin görebileceği açık bir kilit gibidir. Özel anahtar ise sadece sunucunun sahip olduğu gizli bir anahtar gibidir. Sunucu açık anahtarını istemciye gönderir ve istemci bu anahtarın bilgisayarınızda depolanan veya güvendiğiniz biri tarafından verilen güvenilir bir anahtarla eşleşip eşleşmediğini kontrol eder. Anahtar güvenilirse devam edebilirsiniz. Değilse, parmak izini (onu tanımlayan kısa bir kod) kontrol ettikten sonra anahtarı durdurabilir veya kabul edebilirsiniz.

Üçüncü adım, kullanıcı kimlik doğrulamasını kullanarak sunucuya kim olduğunuzu kanıtlamaktır. Bu, sunucuya erişmenize izin verildiğini göstermenin bir yoludur. Bunu yapmanın parolalar, açık anahtarlar veya sertifikalar gibi farklı yolları vardır. En yaygın olanları parolalar ve genel anahtarlardır. Parola kimlik doğrulaması kolaydır ancak çok güvenli değildir. Şifrenizi istemcinize yazmayı ve gizli bir bağlantı üzerinden sunucuya göndermeyi içerir. Sunucu, kullanıcı adınız için saklanan parolayla eşleşip eşleşmediğini kontrol eder.

Açık anahtar kimlik doğrulaması daha güvenlidir ancak daha fazla kurulum gerektirir. Başka bir kod çifti kullanmayı içerir: bir özel anahtar ve bir genel anahtar. Özel anahtar, istemcinizde sakladığınız ve asla kimseyle paylaşmadığınız gizli bir anahtar gibidir. Genel anahtar ise bağlanmadan önce sunucuyla paylaştığınız açık bir kilit gibidir. Bu anahtarları ssh-keygen gibi bir araç kullanarak oluşturabilir ve ssh-copy-id gibi bir araç kullanarak sunucuya kopyalayabilirsiniz. Sunucu açık anahtarınızı home klasörünüzdeki (sunucuda dosyalarınızı tuttuğunuz yer) authorized_keys adlı bir dosyada saklar. Açık anahtar kimlik doğrulaması ile oturum açarken, istemciniz özel anahtarınızla gizli bir mesaj oluşturur ve bunu açık anahtarınızla kontrol eden sunucuya gönderir.

Başarılı bir kullanıcı kimlik doğrulamasından sonra, istemci şifrelenmiş tünel içindeki farklı kanalları kullanarak sunucudan bir veya daha fazla hizmet talep edebilir. En yaygın hizmet, kullanıcının uzak sunucuda komutları yürütmesine olanak tanıyan kabuk erişimidir. Bir diğer yaygın hizmet ise kullanıcının SCP (Güvenli Kopyalama Protokolü) veya SFTP (SSH Dosya Aktarım Protokolü) gibi protokolleri kullanarak yerel ve uzak sistemler arasında dosya kopyalamasına olanak tanıyan dosya aktarımıdır. SCP, dosyaları güvenli bir şekilde aktarmak için Secure Shell kullanan eski bir protokoldür, ancak bazı sınırlamaları ve dezavantajları vardır. SFTP, SSH üzerinden dosya erişimi, dosya aktarımı ve dosya yönetimi işlevleri sağlayan daha modern ve esnek bir protokoldür.

SSH protokolünün yaygın kullanımları nelerdir?

Secure Socket Shell protokolü yaygın olarak aşağıdaki gibi çeşitli amaçlar için kullanılır:

  • Kullanıcılar ve otomatik süreçler için uzak sistemlere güvenli erişim sağlamak
  • Dosyaları yerel ve uzak sistemler arasında güvenli bir şekilde aktarma
  • Uzak sistemlerde uzaktan komut çalıştırma
  • Ağ altyapısını ve görev açısından kritik diğer sistem bileşenlerini yönetme
  • Diğer protokolleri veya uygulamaları tünelleme
  • Ağ trafiğini proxy'leme

Sonuç

Secure Shell, güvenli olmayan ağlar üzerinden güvenli uzaktan oturum açma, dosya aktarımı ve komut yürütme sağlayan güçlü ve çok yönlü bir araçtır. Sunucu kimlik doğrulaması, kullanıcı kimlik doğrulaması, gizlilik ve bütünlük sağlamak için açık anahtarlı kriptografi ve simetrik şifreleme kullanır. SSH ayrıca diğer bilgisayarda komut yazmak, dosya göndermek veya program açmak gibi farklı şeyler yapmanızı sağlar. Güvenli oturum açma protokolü, uzak sistemlerle güvenli ve verimli bir şekilde çalışmak isteyen herhangi bir Linux / Windows kullanıcısı veya yöneticisi için çok önemlidir.

DedicServerEN