SSH (Secure SHELL) Nedir? Nasıl Kullanılır?
SHELL ile ilgili yazı ve öncesindeki birkaç ilgili içerikle Terminal‘e aşina olmaya başladığınızı varsayarak devam ediyorum.
Bu yazılar DigitalOcean ve sunucu işlemleri için temel teşkil edeceğinden mümkün olduğu kadar eksiksiz bir içerik listesi oluşturmak istiyorum. Süreçte benim atladığım, sizin karşılaştığınız problemler olursa memnuniyetle içeriğe dahil etmek isterim.
SSH
Kabuk (SHELL) başlıklı yazıda kısaca değindiğim TELNET ve SSH karşılaştırmasını hazır yeri gelmişken biraz detaylandırayım1. Temelde uzak bir sunucuya bağlanma işlevi görerek aynı amaca hizmet ediyorlar. SSH ve TELNET’in farklılığı ise TELNET’in şifresiz SSH’ın ise şifreli olarak işleyen bir ağ protokolü oluşu. SSH yani “Secure SHELL” yani “Güvenli Kabuk” üzerinden bağlantı gerçekleştirmek istediğinizde kullanıcı adı ve şifreler açık metin olarak değil şifrelenmiş olarak iletiliyor.
SSH Çalışma Biçimi
SSH ile ağa bağlı olan cihazlar arasında veri aktarımı güvenlik kanalı üzerinden güvensiz bir ağda gerçekleşir. Cihazlardan biri SSH sunucusu diğeri ise SSH istemcisi olarak işaretlenir. Bağlantı aşamasında istemcinin uzaktaki makineye, yani SSH sunucusuna bağlanıp kimlik doğrulaması gerçekleştirmesi gerekir. Bu doğrulama aşamasında açık anahtarlı şifreleme (public key encryption) kullanılır. Onaylama sonucu kullanıcıya sistemi kullanmasına izin verilir. SSH kullanımı için otomatik olarak açık-gizli anahtar çifti üreterek ve parolayı kullanarak yetki sahibi olmak mümkün2. Diğer bir yol da kimlik kanıtlaması için açık ve gizli anahtar çiftini manuel olarak üretmek.
SSH'ın Kullanımı
SSH tünellemeyi de destekleyen bir protokoldür. Ancak, benim anlatımda odaklanacağım uzaktaki makinede oturum açma ve komut çalıştırmayı mümkün kılması. Dosya transfer protokolü (SFTP) ya da güvenli kopyalama protokolüyle (SCP) gerçekleştirilen dosya transferinde SSH istemci-sunucu modelini kullanır. Standart TCP portu olan 22 SSH bağlantısı (standart TCP portu) için atanmıştır. SSH, cloud sistemlere bağlanma problemini kolaylaştırdığı için oldukça önemlidir. SSH tüneli sanal makinelere erişimde güvenlik duvarı (firewall) sayesinde güveli bir yol sağlayabilmektedir.
macOS ve pek çok GNU/Linux dağıtımında mevcuttur. Windows ortamında PuTTY3 4, Android telefonlar için JuiceSSH5, iOS telefonlar için Prompt6 en çok tercih edilen uygulamalardır.
SSH Bağlantı Örneği
22 no’lu portunun ön ayarlar kapsamında açık olduğunu varsayalım.
ssh root@ipadresi #Örn. 127.0.0.1, 192.168.1.1 vb.
Yukarıdaki komutla belirttiğiniz IP (IPv4) adresinin 22 no’lu portu üzerinden “root” kullanıcı olarak bağlanma talebi iletmiş olursunuz.
SSH Alternatifi
SSH için alternatif olan Mosh (Mobile SHELL)’u unutmamak lazım elbette. Özellikle bağlantı sorunları ile birlikte sonlanan SSH işlemi ve tekrar bağlantı kurma zorunluluğu aynı anda bir çok sunucuyla işlem yapıyorsanız biraz canınızı sıkabiliyor. Bir de IP adresinizin değişmiş olma ihtimalini de ekleyelim. Şahane. İşte bu gibi durumlarda Mosh üzerinden işlemlerinizi kolaylıkla devam ettirebilmektesiniz. Kısa bir giriş yapmış olmakla birlikte Mosh ile ilgili detaylar da bir başka yazının konusu olarak sırada yer almakta.