SSH (Secure Sockets Shell) nedir?
Secure Shell veya Secure Socket Shell olarak da bilinen SSH, kullanıcılara, özellikle sistem yöneticilerine, güvenli olmayan bir ağ üzerinden bir bilgisayara erişmenin güvenli bir yolunu sunan bir ağ protokolüdür. SSH ayrıca SSH protokolünü uygulayan bir dizi aracı ifade eder. “SSH protokolü nedir?” sorusunun cevabını almak için Bizimle kalın.
SSH protokolü nedir?
Secure Socket Shell protokolü, insanların güvenli olmayan bir ağ üzerinden bir bilgisayardan diğerine erişmesi için güvenli bir yol sağlayan bir ağ protokolüdür. Güvenli ağ hizmetleri sağlamanın yanı sıra SSH, SSH protokolünü uygulayan uygulamalar grubunu ifade eder. Secure Shell, İnternet gibi açık bir ağa bağlı iki bilgisayar arasında şifreli veri iletişiminin yanı sıra güçlü parola kimlik doğrulaması ve ortak anahtar kimlik doğrulaması sağlar.
Bunu yaparak, iletişimin güvenliğini ve bütünlüğünü korur. Güvenli olmayan oturum açma protokollerine (telnet, rlogin gibi) ve güvenli olmayan dosya aktarım yöntemlerine (FTP gibi) güvenli bir alternatiftir. Güçlü şifreleme sağlamanın yanı sıra, ağ yöneticilerinin sistemleri ve uygulamaları uzaktan yönetmelerine yardımcı olarak ağ üzerinden başka bir bilgisayarda oturum açmalarına, komutları yürütmelerine ve Aktarım’dan bir bilgisayardan diğerine dosya almalarına olanak tanır.
SSH protokolü, hem kriptografik ağ protokolünü hem de bu protokolü uygulayan uygulama grubunu ifade eder. Client-server modelini kullanarak SSH, bir Client Secure Shell uygulamasını bir SSH sunucusuna, yani bir oturumun sonuna bağlar. SSH uygulamaları genellikle terminal öykünmesi (terminal emulation) veya dosya aktarımı (file transfer) için kullanılan uygulama protokolleri için destek içerir.
SSH protokolü, diğer uygulama protokolleri için güvenli tüneller oluşturmak için de kullanılabilir. Varsayılan olarak, bir SSH sunucusu TCP protokolünün 22 numaralı bağlantı noktasını dinler. SSH istemcileri ve sunucuları, en yaygınları Gelişmiş Şifreleme Standardı (AES) ve Blowfish olan bir dizi şifreleme yöntemi kullanabilir.
Yetersiz depolama alanı, yavaş yükleme süreleri ve güvenilir olmayan çalışma süresi hosting, web sitenizin performansını ve büyümesini engelleyebilir. Entegre çevrimiçi varlığınız olmaması, işletmeniz için yıkıcı etkiler yaratabilir.
Biz Mavihost olarak, Linux hosting paketlerimizi bu ihtiyaçları karşılayacak şekilde optimum performans, yıldırım hızı ve sınırsız depolama alanı sağlamak için tasarladık. Bu nedenle Türkiye’de ilk kez olarak, İhtiyacınız olan bant genişliğini, disk kullanımını, işlemciyi ve RAM’i ayarlayabilirsiniz.
SSH’nin Tarihi
SSH’nin ilk sürümü 1995 yılında ortaya çıktı ve o sırada Helsinki Teknoloji Üniversitesi’nde araştırmacı olan ve daha sonra Finlandiya merkezli bir siber güvenlik satıcısı olan SSH Communications Security’yi kuran Tatu Ylönen tarafından tasarlandı.
Tatu, Telnet ve rLogin protokollerinde görülen bağlantı güvenliği sorunlarını çözmek için SSH protokolünü tanıttı. Varsayılan bağlantı noktası 22 olan SSH’nin piyasaya sürülmesinden sonra, çoğu bağlantı daha yüksek verimlilik ve güvenliğe sahip olan bu yöntemle yapılır.
Zamanla SSH-1’de çeşitli kusurlar bulundu. Bu sürümün artık kullanımdan kaldırıldığı ve kullanımının güvenli olmadığı düşünülüyor.
Secure Shell protokollerinin güncel sürümü olan SSH-2, 2006 yılında Internet Engineering Task Force (IETF) tarafından Standart İzleme özelliği olarak benimsenmiştir. SSH-2, SSH-1 ile uyumlu değildir ve bir Diffie-Hellman anahtar değişimi kullanır ve güvenliği artırmak için mesaj kimlik doğrulama kodlarını kullanan daha güçlü bir bütünlük kontrolü.
SSH-2’de bilinen bir güvenlik açığı yoktur, ancak 2013’te Edward Snowden tarafından sızdırılan bilgiler Ulusal Güvenlik Teşkilatı’nın (NSA) bazı SSH trafiğinin şifresini çözebileceğini öne sürmüştür.
SSH nasıl çalışır?
Secure Shell, Telnet, rlogin (remote login) ve rsh (remote shell) gibi güvenli olmayan terminal öykünmesi veya oturum açma programlarının yerini almak için oluşturuldu. SSH, uzak sistemlerde oturum açma ve terminal oturumlarını çalıştırma gibi aynı işlevleri etkinleştirir. SSH ayrıca Dosya Aktarım Protokolü (FTP) ve rcp (remote copy) gibi dosya aktarım programlarının yerini alır.
SSH’nin en temel kullanımı terminal oturumu için uzak bir hosta bağlanmaktır. Bu komutun şekli aşağıdaki gibidir:
ssh KullanıcıAdı@SSHserver.example.com
Bu komut, istemcinin,kullanıcı kimliğini kullanarak server.example.com adlı sunucuya bağlanmaya çalışmasına neden olur. Eğer yerel host ile sunucu arasında ilk kez bağlantı kuruluyorsa, kullanıcıdan uzak hostun açık anahtar parmak izi istenecek ve önceden bağlantı olmamasına rağmen kullanıcıdan bağlanması istenecektir:
Host ‘sample.ssh.com’un orijinalliği belirlenemiyor.
DSA anahtarı parmak izi 01:23:45:67:89:ab:cd:ef:ff:fe:dc:ba:98:76:54:32:10 şeklindedir.
Bağlanmaya devam etmek istediğinizden emin misiniz (evet/hayır)?
İsteme evet yanıtı verilmesi oturumun devam etmesine neden olur ve host anahtarı yerel sistemin known_hosts dosyasında saklanır. Bu, varsayılan olarak kullanıcının ana dizinindeki /.ssh/known_hosts adlı gizli bir dizinde saklanan gizli bir dosyadır. Host anahtarı,known_hosts dosyasında saklandıktan sonra, istemci sistem herhangi bir onaya ihtiyaç duymadan doğrudan o sunucuya tekrar bağlanabilir; host anahtarı bağlantıyı doğrular.
SSH ne için kullanılır?
Tüm veri merkezlerinde bulunan SSH, varsayılan olarak her Unix, Linux ve Mac sunucusuyla birlikte gelir. SSH bağlantıları, kaynaklara güvenli uzaktan erişim, komutların uzaktan yürütülmesi, yazılım yamalarının ve güncellemelerin teslimi ve diğer idari veya yönetim görevleri dahil olmak üzere yerel bir makine ile uzak bir host arasındaki birçok farklı iletişim türünü güvence altına almak için kullanılmıştır.
SSH, yerel ve uzak bilgisayarlar arasında güvenli bir kanal oluşturmaya ek olarak, yönlendiricileri, sunucu donanımını, sanallaştırma platformlarını, işletim sistemlerini (OS’ler) ve sistem içi yönetimi ve dosya aktarım uygulamalarını yönetmek için kullanılır.
Secure Shell, araçları kullanarak veya doğrudan terminal aracılığıyla sunuculara bağlanmak, değişiklikler yapmak, yüklemeler yapmak ve çıkmak için kullanılır. SSH anahtarları, sunuculara erişimi otomatikleştirmek için kullanılabilir ve genellikle betiklerde, yedekleme sistemlerinde ve yapılandırma yönetimi araçlarında kullanılır.
Kullanışlı olacak ve kuruluş sınırlarını aşan şekilde çalışacak şekilde tasarlanan SSH anahtarları, single sign-on (SSO) sağlar, böylece kullanıcılar her seferinde bir parola yazmadan hesapları arasında geçiş yapabilir.
Kimlik yönetimi ve erişim yönetiminde çok önemli roller oynayan SSH, şifreli bir bağlantı üzerinden kimlik doğrulamasından daha fazlasını yapar. Tüm SSH trafiği şifrelenir. Kullanıcılar ister bir dosya aktarıyor, ister web’de geziniyor veya bir komut çalıştırıyor olsun, eylemleri gizlidir.
SSH’yi kimlik bilgileri olarak sıradan bir kullanıcı kimliği ve parola ile kullanmak mümkün olsa da, SSH,hostların birbirlerinin kimliğini doğrulamak için daha çok genel anahtar çiftlerine güvenir. Bireysel kullanıcılar, hosta bağlanmak için yine de kendi kullanıcı kimliklerini ve parolalarını veya diğer kimlik doğrulama yöntemlerini kullanmalıdır, ancak yerel makine ve uzak makine birbirinin kimliğini ayrı ayrı doğrular.
Bu, iletişimdeki her host için benzersiz bir ortak anahtar çifti oluşturarak gerçekleştirilir. Tek bir oturum iki ortak anahtar çifti gerektirir: bir ortak anahtar çifti, uzak makinede yerel makinede kimlik doğrulaması yapmak için ve ikinci bir ortak anahtar çifti, yerel makinede uzak makinede kimlik doğrulaması yapmak için.
SSH yetenekleri
SSH’nin etkinleştirdiği işlevler şunları içerir:
- otomatikleştirilmiş süreçlerin yanı sıra kullanıcılar için SSH etkin ağ sistemlerine veya cihazlara güvenli uzaktan erişim;
- güvenli ve etkileşimli dosya aktarım oturumları;
- otomatik ve güvenli dosya aktarımları;
- uzak cihazlarda veya sistemlerde komutların güvenli şekilde verilmesi;
- Ve ağ altyapısı bileşenlerinin güvenli yönetimi.
SSH, terminal oturumlarını etkinleştirmek için etkileşimli olarak kullanılabilir ve daha az güvenli Telnet programı yerine kullanılmalıdır. SSH, programların ve sistemlerin verilere ve diğer kaynaklara uzaktan ve güvenli bir şekilde erişmesini sağlamak için betiklerde ve diğer yazılımlarda da yaygın olarak kullanılır.
SSH güvenlik sorunları
SSH protokolünü kullanan şirketler, istemci sistemlerde depolanan host anahtarlarını yönetmenin yollarını aramalıdır. Bu anahtarlar, özellikle idari amaçlarla uzak hostlara erişmesi gereken BT personeli için zaman içinde birikebilir. İyi bilinen bir SSH dosyasında depolanan veriler, uzak sistemlere gerçek erişim elde etmek için kullanılabileceğinden, kuruluşlar bu dosyaların varlığından haberdar olmalıdır Ve sistemden çıktıktan sonra bile, dosyaların kontrolünü sürdürmek için standart bir sürece sahip olmalıdırlar.
Geliştiriciler, SSH komutlarını veya işlevlerini bir komut dosyasına veya başka türde bir programa dahil ederken de dikkatli olmalıdır. Uzak bir sistemdeki geçerli makineden kullanıcının kimliğini doğrulamak için bir kullanıcı adı ve parola içeren bir SSH komutu vermek mümkün olsa da, bunu yapmak kaynak koduna erişim kimlik bilgilerini açığa çıkarabilir.
SSH ile çalışma güvenliğini artırmanın yolları
- Özel bir anahtar oluşturma ve onunla bağlantı kurmak
- Varsayılan SSH bağlantı noktasını değiştirmek
- SSH ile bağlanmak için IP kısıtlaması uygulaymak
- İşletim sistemi ve hizmetin sürekli güncellenmek
SSH ve Telnet arasındaki fark
Telnet, ilk İnternet protokollerinden biridir ve uzak bir sistemde bir terminal öykünme oturumu başlatmak ve sürdürmek için kullanılır. SSH ve Telnet işlevsel olarak benzerdir, aralarındaki ana fark, SSH protokolünün bir terminal oturumu kurarken uç noktaları doğrulamak ve oturum komutlarını ve çıktısını şifrelemek için ortak anahtar şifrelemesi kullanmasıdır.
Telnet öncelikle terminal emülasyonu için kullanılırken, SSH terminal emülasyonunun yanı sıra RSH gibi uzak komutlar vermek, dosyaları SSH Dosya Aktarım Protokolü (SFTP) kullanarak aktarmak ve diğer uygulamaları tünellemek için kullanılabilir.
SSH ve SSL/TLS arasındaki fark
Secure Sockets Layer (SSL) protokolünü güncelleyen Transport Layer Security (TLS) protokolü, ağ iletiminde taşıma katmanında güvenliği sağlamak için tasarlanmıştır. SSH protokolü de taşıma katmanında ve hemen üzerinde çalışır ancak bu iki protokol arasında önemli farklar vardır.
Her ikisi de ana bilgisayarların kimliğini doğrulamak için genel/özel anahtar çiftlerine güvenirken, TLS’de sunucunun kimliği yalnızca bir anahtar çifti ile doğrulanır. SSH, her bağlantının kimliğini doğrulamak için ayrı bir anahtar çifti kullanır: bir yerel sistemden uzak bir sisteme bağlanmak için bir anahtar çifti ve yerel sisteme uzak bir bağlantının kimliğini doğrulamak için ikinci bir anahtar çifti. SSH ve TLS arasındaki diğer bir fark, TLS’nin bağlantıların kimlik doğrulama olmadan şifrelenmesine veya şifreleme olmadan kimlik doğrulamaya izin vermesidir. Ancak SSH, tüm bağlantıları şifreler ve doğrular.
SSH, BT ve bilgi güvenliği (infosec) uzmanlarına SSH istemcilerini uzaktan yönetmek için güvenli bir mekanizma sağlar. SSH, parola kimlik doğrulaması yerine, SSH istemcisi ile sunucu arasında iletişim kurmak için cihazların kimliğini doğrular. BT personelinin uzak sistemlere bağlanmasına ve host dosyalarına host anahtar çiftleri ekleme veya kaldırma dahil olmak üzere SSH ayarlarını değiştirmesine olanak tanır. SSL sertifikası nedir makalesini okuyarak SSL hakkında daha fazla bilgi edinin.
SSH uygulaması
Açık bir protokol olarak, SSH protokolü çoğu işletim sistemi için uygulanmıştır ve OpenSSH’nin açık kaynaklı bir uygulaması Linux, Unix ve macOS dahil diğer Berkeley Software Distribution (BSD) tabanlı işletim sistemlerinde yaygın olarak bulunur. OpenSSH, 2015’ten beri Windows PowerShell’de çalışacak şekilde oluşturuldu ve 2018’de Windows 10’a isteğe bağlı OpenSSH desteği eklendi. Çoğu Unix benzeri işletim sisteminde varsayılan olarak SSH’ye doğrudan erişilebilirken, Windows ayarlarında Microsoft’un OpenSSH’sinin portlu bir sürümü mevcuttur.
PuTTY başka bir açık kaynaklı SSH uygulamasıdır, şu anda Windows, macOS ve Unix/BSD için mevcut olmasına rağmen, PuTTY Windows üzerinde çalışacak şekilde yazılmıştır ve uzun süredir bir Windows sisteminde SSH kullanmak için en iyi seçeneklerden biri olmuştur.
SSH paketinin çoğu uygulaması üç uygulama içerir: slogin (güvenli oturum açma), ssh ve scp (güvenli kopya); Bunlar rlogin, rsh ve rcp dahil olmak üzere önceki güvensiz Unix programlarının güvenli sürümleridir. Uzak sistemin kimliğini doğrulamak için ortak anahtar kriptografisini kullanır ve gerekirse uzak sistemin kullanıcının kimliğini doğrulamasını sağlar.
Şu anda, çeşitli açık kaynak ve tescilli lisanslar altında çeşitli işletim sistemleri için düzinelerce SSH protokolü uygulaması mevcuttur.
SSH komutları
SSH’nin grafik uygulamaları olsa da, program genellikle komut satırında çağrılır veya bir komut dosyasının parçası olarak yürütülür. Hedef host veya kullanıcı kimliği gibi bağımsız değişkenler olmadan ssh komutunu kendi başına çalıştırmak, SSH komut parametrelerinin ve seçeneklerinin bir listesini döndürür.
SSH protokol komutunun en temel biçimi, programı ve hedef host adını veya IP adresini çağırmaktır: Örneğin ssh server. KullanıcıAdı.com veya ssh 192.168.10.50
192.168.10.50 hedefine bağlanır. Hedef host, istemcinin altında çalıştığı hesabın kullanıcı adı için bir parola isteği ile yanıt verecektir. Başka bir deyişle, kullanılan kullanıcı adı Kullanıcı Adı ise, uzak host Kullanıcı Adı hesabıyla ilişkili bir şifre isteyecektir. Çoğu durumda, uzak sistemin kullanıcı adı farklı olacaktır, bu nedenle komut, aşağıdaki gibi uzak sistemin kullanıcı adıyla verilmelidir: Ssh remote_host_userID@server. KullanıcıAdı.com
SSH protokolü, uzak hosta tek bir komut vermek ve ardından çıkmak için de kullanılabilir: ssh KullanıcıAdı.com
Bu komut, uzak host daki geçerli dizinin tüm içeriğini listeleyen Unix ls komutunu yürütür. Bu örnek önemsiz olsa da, SSH’nin uzak bir sistemde daha fazla komut çalıştırmak için kullanılabileceğini gösteriyor.
Örneğin, bir bilgisayardan diğerine dosya kopyalamak için scp komutu kullanılır ve rcp sürümü SSH güvenliğine sahiptir.
ssh-copy-id, parolasız oturum açmayı ve SSO’yu otomatikleştirmek için sunucudaki SSH anahtarını kopyalamak, yüklemek ve yapılandırmak için kullanılır.
sftp, dosyaları bir bilgisayardan diğerine kopyalamak için kullanılır ve ftp’nin (orijinal dosya aktarım protokolü) daha güvenli bir sürümüdür.
SSH tünelleme
SSH port forwarding olarak da bilinen SSH tüneli, kullanıcının yerel bir host ile uzak bir host arasında güvenli bir tünel açmasını sağlayan bir yöntemdir.
SSH port forwarding, ağ trafiğini belirli bir bağlantı noktası adresine veya IP adresine yönlendirmeye yönelik bir tekniktir, böylece uzak bir host yerel host’taki programlar tarafından doğrudan erişilebilir. Hedef uzak bir SSH sunucusunda olabilir veya bu sunucu başka bir uzak host da geçiş yapacak şekilde yapılandırılmış olabilir.
SSH tünelleme, algılanmadan bir kurumsal güvenlik duvarından geçebildiği için BT yöneticileri için güçlü bir araçtır. Bu nedenle kurumsal güvenlik duvarları üzerinden SSH tünellerinin yetkisiz kullanımını engelleyen araçlar mevcuttur.
Son Söz
SSH, karmaşık ağ protokollerinden biri olabilir. Bununla birlikte, geniş kullanımının ve popülaritesinin nedeni basittir: SSH istemcisi ile sunucu arasındaki tüm iletişim tamamen şifrelenmiştir ve bu nedenle inanılmaz derecede güvenlidir.
Doğal olarak, SSH protokolü hatasız değildir. Ancak, diğer kimlik doğrulama yöntemlerinden hala çok daha iyidir; Ve dosyaları paylaşmak ve internet üzerinden iletişim kurmak için güvenli bir yönteme ihtiyaç duyan hemen hemen her işletme için çok faydalı olabilir.
SSH’yi kullanmaya başlamak istiyorsanız umarız bu makale SSH’nin nasıl çalıştığını, ne için kullanıldığını ve onu nasıl güvenle kullanabileceğinizi anlamanıza yardımcı olmuştur. Yüksek hızlı hosting satın almak için Mavihost firmasının web hosting planlarını inceleyiniz.
Sıkça Sorulan Sorular
En sık sorulan sorulardan bazılarının yanıtları:
SSH neden Secure Shell olarak adlandırılıyor?
SSH protokolü, bir istemci ile bir sunucu arasındaki bağlantıyı güvence altına almak için şifreleme kullanır. Ağdaki saldırılara karşı korumak için tüm kullanıcı kimlik doğrulaması, komutlar, çıktılar ve dosya aktarımları şifrelenir.
Secure Shell ile secure socket shell arasındaki fark nedir?
SSH ile SSL arasındaki temel fark, SSH’nin başka bir bilgisayara komutlar verebileceğiniz, veri aktarabileceğiniz vb. güvenli bir tünel oluşturmak için kullanılmasıdır. Öte yandan, SSL iki taraf arasında güvenli veri aktarımı için kullanılır – öyle SSH ile yapabildiğiniz gibi komut vermenize izin vermiyor.
Secure Shell SSH’nin avantajı nedir?
SSH’nin ana avantajı, istemci ile sunucu arasında güvenli bilgi aktarımını sağlamak için şifreleme kullanılmasıdır. SSH, kullanıcıların uzaktaki bir bilgisayarda kabuk komutlarını fiziksel bilgisayarın önünde oturuyormuşçasına aynı şekilde yürütmelerine olanak tanır.