SSH Nedir ve Nasıl Çalışır?
Yayınlanan: 2021-08-15SSH, bir ağdaki uzak bilgisayarlara erişmek için güvenli bir ağ protokolüdür.
Bilgisayarlar birbirleriyle ağlar aracılığıyla konuşurlar. Bu nedenle, ağ araştırmacıları diğer makinelerle iletişim kurmak için bir dizi kural tanımladılar ve Telnet gibi protokoller geliştirmeye başladılar; bunu kullanarak, bir kullanıcı başka bir bilgisayarın kontrolünü ele geçirebilir.
Ancak güvenli değillerdir, yani ağın ortasındaki herhangi biri aktarılan verileri yakalayabilir ve okuyabilir. 90'ların ortalarında, telnet protokolünün güvenilir bir halefi olarak ssh adlı daha güvenli bir protokol tanıtıldı.
Bir sektörde çalışan bir yazılım geliştiricisi veya sistem yöneticisiyseniz, en az bir kez ssh kullanmış olabilirsiniz. Bilmediyseniz hemen öğrenelim çünkü bilinmesi gereken temel becerilerden biridir.
SSH nedir?
SSH veya Secure Shell veya Secure Socket Shell , uzak makinelere (çoğunlukla uzak sunucular) güvenli bir şekilde erişmemize ve onlarla iletişim kurmamıza yardımcı olan bir ağ protokolüdür.
Güçlü şifreleme sağlar ve ağ yöneticileri ve geliştiricileri tarafından uzak sistemleri ve uygulamaları yönetmek, komutları yürütmek, dosya paylaşmak vb. için yaygın olarak kullanılır.
SSH ihtiyacı
SSH, rlogin, rsh, Telnet gibi güvenli olmayan uzaktan erişim protokollerinin karşılaştığı güvenlik sorunlarını çözmek için 1995 yılında oluşturuldu.
Şimdi 1969'da geliştirilen Teletype Network'ün kısaltması olan Telnet'ten bahsedelim. Bu, uzaktaki bir sunucuya (dünyanın herhangi bir yerindeki herhangi bir yere) erişmek için bilgisayarınızda çalışan basit bir komut satırı aracıdır. Ve sanki uzak sunucunun hemen önünde oturuyormuşsunuz gibi (hatta sunucudan kilometrelerce uzakta) o sunucuda yürütülecek komutlar gönderin. Telnet , mesajları bir ağ üzerinden düz metin olarak iletir ve alır .
Yürüteceğiniz komutlar, programları çalıştırmak, dizinler oluşturmak, dosyaları oluşturmak/silmek/aktarmak, hizmetleri başlatmak/durdurmak vb. olabilir.
Bir ağdaki başka bir makineye bağlanmanın sorunu, iletilen verilerin birçok ağdan geçmesidir. Bu arada, bazıları güvensiz olabilir ve aktarılan veriler, amaçlanan hedef makineye ulaşmadan önce durdurulabilir, muhtemelen değiştirilebilir.
Güvenliğin çok önemli olmadığı ilk zamanlarda, tüm iletişim düz metin olarak gerçekleşir. Bu nedenle, istemci ve sunucu arasında internet üzerinden iletilen veriler kolayca yakalanabilir. Ve mesajlar şifrelenmediği için okunabilir.
Bu nedenle, düz metin protokolleri son derece güvensizdir ve parolalar, sırlar vb. gibi hassas veri aktarımı için asla kullanılmaz. Bu nedenle SSH, eski uzaktan erişim ağ protokollerine güvenli bir alternatif olarak kabul edilmektedir.
O nasıl çalışır?
SSH, bir ssh istemcisini ssh sunucusuna bağlayarak ağ üzerinden güvenli iletişim için bir istemci-sunucu mimarisi kullanır. Varsayılan olarak, ssh sunucusu standart TCP bağlantı noktası 22'yi dinler (daha iyi güvenlik için bunu değiştirebilirsiniz).
İstemci ve sunucu arasında kimlik doğrulaması yapmak için bir açık anahtar şifreleme tekniği kullanır. Ek olarak protokol, gizlilik ve veri bütünlüğünü sağlamak için istemci ve sunucu arasında mesaj alışverişi için güçlü simetrik şifreleme ve karma algoritmalar kullanır.
Linux, güvenliği ve dayanıklılığı nedeniyle uzak sunucular için yaygın olarak kullanılan işletim sistemidir. İnternette Linux işletim sistemi kullanan bir çok Sunucu yıllardır bir çok arıza olmadan hatta yeniden başlatılmadan çalışmaktadır.

Çoğu SSH oturumunda (uzak sunucuya eriştiğimiz bir dönem) yalnızca aşağıdaki iki işlem bulunur:
- kimlik doğrulama
- Komut Yürütme
SSH sunucuları, çeşitli yöntemler kullanarak istemcilerin kimliğini doğrulayabilir.
Ve iki popüler yol:
- Parola tabanlı
- Anahtar tabanlı
Parola tabanlı kimlik doğrulama, OpenSSH yüklü istemciler için kimlik doğrulama için kullanılan varsayılan yöntemdir. En temel ssh kimlik doğrulamasıdır, ancak en güvenli olan değildir.
Parolalar sunucuya güvenli bir şekilde gönderilse de, modern kaba kuvvet saldırıları kimlik doğrulamayı atlayabilir.
Anahtar tabanlı kimlik doğrulama, güvenilir ve güvenli bir alternatif olduğunu kanıtlayan SSH anahtar çiftleri oluşturarak sistem güvenliğini daha da artırır.
Sunucu, istemcinin kimliğini başarıyla doğruladıktan sonra, aralarında güvenli bir bağlantı kurulur.
Uzak Sunucuya SSH Kullanarak Erişme
Mac/Linux kullanıcısıysanız, OpenSSH zaten varsayılan olarak kurulu olduğundan, ssh komutlarını yazmak ve çalıştırmak için doğrudan terminali kullanabilirsiniz.
Windows kullanıcısıysanız, ssh komutlarını çalıştırmak için bir üçüncü taraf terminal öykünücüsü istemcisi yüklemeniz gerekir. PuTTY, Windows işletim sistemi için en popüler ssh istemcisidir.
SSH kullanarak uzak bir sunucuya bağlanmak için en az iki şeyi bilmeniz gerekir.
- sunucu ana bilgisayarı
- Kullanıcı adı
Temel ssh komutunun sözdizimi şöyledir:
$ ssh <user-name> @ <host> -p <port-no>
Kullanıcı adı , bağlanmaya çalıştığımız uzak makinenin kullanıcı adıdır (yerel makinenizdeki kullanıcı değil) ve ana bilgisayar da bir IP adresi veya bir etki alanı adıdır.
OverTheWire web sitesini kullanarak uzak bir sunucuya bağlanma örneğine bakalım. Ücretsiz bir savaş oyunu meydan okuma sitesidir.
Şimdi haydut mücadelesine ssh kullanarak bağlanalım. SSH kullanarak nasıl oturum açılacağını öğreten web sitesindeki mevcut zorluklardan biridir.
kimlik bilgileri:
kullanıcı adı ve şifre: bandit0
sunucu ve bağlantı noktası: bandit.labs.overthewire.org , 2220
Aşağıdaki komutu yazıp enter tuşuna bastığınızda:
$ ssh [email protected] -p 2220
Kimlik doğrulama amacıyla sizden şifre isteyecektir. Şimdi şifreyi yazın ve enter tuşuna basın:
Girilen parola doğruysa, uzak sunucuda başarıyla oturum açtınız ve terminaliniz yukarıdaki görüntüdeki gibi görünecektir.
Artık komutlarınızı yazıp yürütmek ve gerekli işlemlerinizi gerçekleştirmek için uzak makinenin terminalini kullanabilirsiniz.
ssh oturumunu sonlandırmak istediğinizde, exit komutunu yazın:
$ exit
Ssh oturumundan başarılı bir şekilde çıkış yaptığınızda “ Bağlantı kapatıldı” mesajını alacaksınız.
Çözüm
SSH'nin popülaritesinin arkasındaki ana sebep , sunucu ve istemci arasındaki tüm iletişimin şifrelenmesidir .
Çoğu kişi ssh kullanmanın karmaşık olduğunu ve nasıl çalıştığı hakkında bilgi edinmenin kolayca anlaşılmadığını varsayar, ancak düşündüğünüzden daha basittir. Artık SSH, nasıl çalıştığı, arkasındaki güvenlik unsurları ve iletişimde neden hayati bir rol oynadığı hakkında temel bir anlayışa sahipsiniz.
Ardından, Sysadmin olmak için bazı kaynakları keşfedin.