Secure Shell veya Secure Socket Shell olarak da bilinen SSH adlı bir ağ protokolü, uzaktaki cihazlara (çoğunlukla uzak sunucular) erişimi ve bunlarla iletişimi güvence altına almaya yardımcı olur.
Ağ yöneticileri ve geliştiriciler, uzak sistemleri ve uygulamaları yönetmek, komutları çalıştırmak, dosyaları paylaşmak vb. için güçlü şifreleme sunan bu protokolü sıklıkla kullanır.
SSH Özellikleri
Çeşitli güvenlik özellikleri sağlayan Secure Shell protokolü, aşağıdaki gibi önemli özellikler sağlar:
- Verilerinizin gizliliği – Secure Shell verilerinizi şifreleyerek ifşaya karşı korur.
- İletişimin bütünlüğü – Secure Shell protokolü, değiş tokuş edilen bilgilerin değiştirilmeden kalmasını garanti eder.
- Kimlik doğrulama – Bu protokol, bir bağlantı kurmak için göndericilerin ve alıcıların kimliklerini kanıtlamalarını gerektirir.
- Yetkilendirme – SSH, kullanıcılara farklı ayrıcalıklar sağlayarak hesaplara erişim kontrolünü yapılandırmanıza da olanak tanır.
- TCP/IP tabanlı oturumları şifrelemek için yönlendirme/tünelleme – Kullanıcılar şifrelenmemiş trafiği şifreli bir ağ kanalı üzerinden aktarmak için tüneller kurabilir.
SSH Tarihçesi
SSH 1995 yılında Telnet, rlogin ve rsh gibi güvenli olmayan uzaktan erişim protokollerindeki güvenlik sorunlarını gidermek için geliştirilmiştir.
1969 yılında oluşturulan Teletype Network olarak da bilinen Telnet, uzaktaki bir sunucuya (dünyanın herhangi bir yerinde bulunan) bağlanmak için kullanabileceğiniz basit bir komut satırı aracıdır. Sunucunun önündeymişsiniz gibi davranarak (sunucudan kilometrelerce uzakta olsanız bile) o sunucuda gerçekleştirilecek emirler göndermenizi sağlar. Telnet düz metin mesajları göndermek ve almak için bir ağ kullanır.
Vereceğiniz komutlar hizmetleri başlatmak/durdurmak, uygulamaları çalıştırmak, klasör oluşturmak, dosya oluşturmak/silmek/aktarmak vb. olabilir. Bir ağa ikinci bir bilgisayar eklemekle ilgili sorun, iletilen verilerin birçok ağ üzerinden geçecek olmasıdır.
Güvenliğin daha az endişe konusu olduğu ilk zamanlarda, tüm iletişim düz metin olarak yapılıyordu. Sonuç olarak, internet üzerinden bir istemci ve sunucu arasında iletilen verilere müdahale etmek kolaydır ve mesajlar şifrelenmediği için okunabilir.
Düz metin protokolleri son derece güvensizdir ve asla parola ya da diğer hassas verilerin iletimi için kullanılmamalıdır. Bu nedenle SSH, yerleşik uzaktan erişim ağ protokollerinin güvenli bir alternatifi olarak görülmektedir.
SSH Nasıl Kullanılır?
SSH, güvensiz bağlantılarla çalışırken kullanışlı bir araçtır. Ancak, bu programı kullanmak için önce Windows üzerinden bir SSH istemcisi indirmeniz gerekir. Yüklendikten sonra oturum açmak için bir parola veya SSH anahtarı oluşturabilirsiniz. Daha sonra sunucu, başka bir bilgisayar veya web barındırıcısı gibi diğer sistemlerle iletişime geçebilirsiniz. Web barındırıcınızın SSH’yi desteklemesi önemlidir. Şifreleme, alan adı düzeyinde de gerçekleşebilir; bu, alan adına erişen birden fazla kullanıcı olduğunda geçerli olabilir. Bu durumda veriler diğer kullanıcılardan korunabilir.
SSH komut bazında kullanılır, bu da programlama deneyimi çok az olan veya hiç olmayan kullanıcıların programa başlayabilmesini sağlar. Bununla birlikte, destek için internette bulunabileceğiniz kapsamlı rehberler vardır.
SSH komutlarına örnekler aşağıdaki şekildedir:
-
traceroute IP address
: Traceroute çalıştır. -
history
: daha önce hangi komutları çalıştırdığınızı gösterir. -
shutdown -r now
: sunucuyu yeniden başlatır. -
free -m
: hala ne kadar boş bellek olduğunu gösterir. -
pwd
: hangi klasörde olduğunuzu gösterir. -
rm FILE
: dosya veya klasör silmenize yarar.
Neden SSH Kullanılmalı?
SSH farklı bilgisayarlar arasında veri dağıtımı ve iletişim için çok fazla güvenlik sunar. Bu, büyük bir avantajdır. Buna ek olarak, SSH’nin önemli bir avantajı, genel ve gizli anahtar çiftiyle kimlik doğrulamanın mümkün olmasıdır. Bu, SSH uygulamalarının bir şifreye ihtiyaç duymadan otomatik olarak kullanılmasını sağlar. Buna ek olarak, açık anahtarın atandığı herhangi bir sistemde gizli anahtar kullanılarak oturum açılabilir. Sahibi gizli anahtarın şifresini değiştirmeye karar verirse, anahtar çifti için hiçbir sonuç olmaz. SSH, henüz şifreleme kullanmayan telnet gibi eski protokollerin yerini alır. SSH bu nedenle çok daha güvenlidir.
SSH 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. SSH sunucusu genellikle varsayılan olarak TCP bağlantı noktası 22’yi dinler (daha iyi güvenlik için bunu değiştirebilirsiniz).
İstemci ve sunucu arasında güven tesis etmek için açık anahtar kriptografisi kullanılır. Gizliliği ve veri bütünlüğünü daha fazla korumak için, protokol ayrıca istemci ve sunucu arasındaki mesaj alışverişleri için sağlam simetrik şifreleme ve karma teknikleri kullanır.
Uzak sunucular için Linux, güvenilirliği ve güvenliği nedeniyle en popüler işletim sistemidir. Linux işletim sistemini çalıştıran çok sayıda sunucu yıllardır herhangi bir hata olmadan ve hatta yeniden başlatılmadan çalışmaktadır.
Çoğu SSH oturumu (uzak sunucuya bağlanmak için kullandığımız zaman) basitçe aşağıdaki iki eylemi içerir:
- Kimlik Doğrulama
- Komut Yürütme
İstemcilerin kimliği SSH sunucuları tarafından çeşitli şekillerde doğrulanabilir.
Bu doğrulamadaki iki yaygın yöntem aşağıdakileri içerir:
- Parola tabanlı
- Anahtar tabanlı
OpenSSH yüklü istemciler için parola tabanlı kimlik doğrulama varsayılan kimlik doğrulama biçimidir. En basit yöntem olmasına rağmen en güvenli SSH kimlik doğrulama türü değildir. Modern kaba kuvvet saldırıları, parolalar sunucuya güvenli bir şekilde sağlansa bile kimlik doğrulamasını yenebilir. SSH anahtar çiftleri, sistem güvenliğini daha da artıran anahtar tabanlı kimlik doğrulama yoluyla güvenilir ve güvenli bir alternatif olarak oluşturulur. Sunucu başarılı bir şekilde kimlik doğrulaması yaptıktan sonra istemci ve sunucu arasında güvenli bir bağlantı oluşturulur.
Farklı SSH Kimlik Doğrulama Yöntemleri Nelerdir?
Genel olarak, yaygın olarak kullanılan iki SSH kimlik doğrulama yöntemi vardır: parola tabanlı kimlik doğrulama ve açık anahtar (PKI) tabanlı kimlik doğrulama.
1. Parola tabanlı kimlik doğrulama
Bu kimlik doğrulama türünde, bir istemci uzak bir sunucuya bağlanmaya çalıştığında, kullanıcıyı bir kullanıcı adı ve parola ile tanımlar. Kullanıcı erişim kimlik bilgilerini girdiğinde, sunucu bunların kendi veri tabanında mevcut olup olmadığını kontrol eder. Girişler şifreli bir kanal üzerinden paylaşılır; eşleşirlerse, sunucu istemcinin bağlanmasına izin verir.
Parolalar geleneksel kullanıcı tanımlama yöntemi olsa da, her zaman tehlikeye girme riski vardır. Uygun parola güvenliği sağlamak için güçlü parolalar belirlemeniz, bunları düzenli olarak değiştirmeniz ve gizli tutmanız gerekir.
Ne yazık ki, bugünlerde kullandığımız kimlik bilgilerinin sayısı göz önüne alındığında, bu birçok kullanıcı için zor olabilir. Bu da bilgisayar korsanlarının giriş bilgilerinizi istismar etmesi için ideal koşulları yaratır. Parolalar uzak bilgisayarlar arasında geçiş sırasında şifrelenmiş olsa da, bir kaba kuvvet saldırısı onları yine de kırabilir. Doğal olarak, bu gerçek parolaları daha az güvenli bir kimlik belirleme yöntemi haline getirir. SSH kimlik bilgilerinizin ifşa edilmesi bir bilgisayar korsanına root erişimi sağlayarak kötü sonuçlara yol açabilir.
2. PKI kimlik doğrulama
Anahtar tabanlı kimlik doğrulama tercih edilen bir yöntemdir ve kaba kuvvetle uygulanabilen parola tabanlı kimlik doğrulamaya göre önerilir.
PKI kimlik doğrulaması, sunucu ve istemci arasında bir güven ilişkisi kurmak için kriptografik anahtarlar kullanır. Anahtar tabanlı kimlik doğrulama bir parola (şifre) gerektirebilir veya şifreleme anahtarında parola olmadan çalışabilir.
Bu kimlik doğrulama türünü kullanmak için bir SSH anahtar çifti oluşturmanız gerekir. Anahtar çifti bir genel ve bir özel anahtardan oluşur. Genel anahtar sunucuda tutulurken, özel anahtar bilgisayarınızda tutulur.
Secure Shell ile bağlandığınızda, anahtar çifti kullanılarak bilgisayarınız ve sunucu arasında bir güven ilişkisi kurulur. Anahtarlardan biri eksikse veya anahtarlar arasında bir tutarsızlık varsa, bağlantı kurulamaz.
Farklı SSH Sistemleri
Elbette SSH içinde katılabileceğiniz ve kullanabileceğiniz farklı varyantlar da vardır. Bunlardan üçü aşağıdaki şekildedir:
1. PuTTY
En ünlü Secure Shell istemcisi, ücretsiz olarak kullanılabilen ve Windows’a yüklenebilen bir protokol olan PuTTY’dir. Uzak bir SSH sunucusuna bağlanmak, IP adresini veya alan adını yazmak ve ardından açmak kadar basittir. Uzak SSH sunucusuna bağlanmak için kullanıcı adınız ve parolanız istenebilir. Bunun yerine PuTTY’nin SSH anahtarları ile şifre kullanmadan bağlanabilirsiniz. SSH oturumunu farenizin tek bir tıklamasıyla açmak için PuTTY’ye bir kısayol oluşturmak da mümkündür.
2. KiTTY
PuTTY’ye iyi bir alternatif, aynı zamanda ücretsiz ve açık kaynak kodlu KiTTY’dir. Bu program bir Windows SSH istemcisi olarak çalışmak üzere tasarlanmıştır. PuTTY’nin sahip olduğu tüm işlevleri, eklenen bazı ekstra işlevlerle birlikte içerir. Ana ek özellikler aşağıdakileri içerir:
- Şifreyi otomatik olarak hatırlama
- KiTTY hafif bir SSH istemcisidir ve yüklü olduğu bilgisayar veya sunucudan nispeten az kaynak gerektirir.
- Her oturum için bir simge. Bu onu iyi düzenlenmiş bir program yapar.
- Uzak bir oturumda yerel, kaydedilmiş bir komut dosyası çalıştırma.
- pscp.exe ve WinSCP entegrasyonu. Burada pscp bir komut satırı uygulamasıdır ve WinSCP (Windows Secure CoPy) SSH kullanan açık kaynaklı bir grafik Windows uygulamasıdır.
- Oturumlar filtrelenir.
- Önceden tanımlanmış komutlar için kısayol.
- Çift oturumun hızlı başlatılması.
3. MobaXterm
PuTTY iyi bir ücretsiz SSH istemcisidir ve Windows kullanıcıları arasında en yaygın olanıdır. Bununla birlikte, bu istemcide de kusurlar vardır, eksik özelliklerden biri sekmelerde bir oturum açmaktır. PuTTY’nin (ve KiTTY gibi benzer istemcilerin) bu eksik özellikleri eklenmiş alternatifleri mevcuttur. Bu alternatifler ayrıca FTP, SFTP gibi diğer protokolleri tek bir araçta birleştirir. Bu, ev sunucusu kullanıcıları veya bir sunucu yöneticisi için yararlı olabilir.
PuTTY’ye bir alternatif örneği MobaXterm’dir. Bu programı indirmek ücretsizdir, ancak ücretli bir Pro sürümü de mevcuttur. Bu protokol, BT yöneticileri, programcılar, web yöneticileri ve bir sistemi uzaktan yönetmek isteyen diğer kişiler için birçok işlev sunan tek bir Windows uygulamasıdır.
MobaXterm’in bazı önemli özellikleri aşağıdakileri içerir:
- SSH, X11, RDP, VNC, FTP, MOSH ve çok daha fazlası gibi çeşitli protokolleri destekler.
- Bash, cat, grep, sed, awk ve daha birçok Unix komutunu Windows’a getirir.
- İstemcinin kurulu olduğu bilgisayar veya sunucudan nispeten az kaynak gerektirir.
- Gömülü X Sunucusu ve X11 yönlendirme. İletişim anlaşmaları X sunucusu tarafından kaydedilir ve X11 yönlendirme, kullanıcının uzak uygulamaları başlatmasına izin veren, ancak şifre ekranının yerel Windows bilgisayarına iletildiği bir mekanizmadır.
- Grafik, widget ve metin kullanımına izin veren GUI (grafiksel kullanıcı arayüzü) dosyası.
- Eklentiler ile genişletme imkanı.
- SSH için sekmeler mevcuttur.
MobaXterm, Pro sürümüne veya kullanıcı için iyi olabilecek ücretsiz Home sürümüne yükseltmek için reklamlar içermez. Ancak, ücretli sürüm daha fazla özellik sunar.
SSH VPN ile Aynı Şey midir?
Bir Sanal Özel Ağ (VPN) da iletişiminiz için şifrelenmiş bir tünel sağlar. Ancak SSH, istemci-sunucu yapılandırmasında belirli bir bilgisayara güvenli bir bağlantı sağlarken, VPN bilgisayarınız ile VPN sunucusu arasında güvenli bir bağlantı sağlar.
VPN sunucusunda uzak komutları çalıştırmazsınız. Bunun yerine, VPN’inizi açtığınızda, bilgisayarınıza gelen ve bilgisayarınızdan giden veri aktarımları, daha geniş internete “yeniden katılmadan” önce şifrelenmiş tünelden VPN sunucusuna geçer.
Dolayısıyla, SSH uzak komutları çalıştırmak için tek bir bilgisayara güvenli bir bağlantı sağlarken, VPN bilgisayarınız ile VPN sunucusu arasında şifreli bir tünel sağlar. Bu işlem bilgisayarınızın konumunu gizleyebilir ve internet bağlantısı kullanırken ek bir güvenlik sağlayabilir.
SSH ile İlgili En Çok Sorulan Sorular
1. SSH veya Secure Shell protokolü nedir?
SSH veya Secure Shell, iki cihaz arasında şifreli iletişim göndermek ve almak için kullanılan bir protokoldür. Protokol, iletişim paketlerini paket koklama saldırılarından korumak için simetrik ve asimetrik şifreleme ve karma kullanır.
2. SSH anahtarı nedir?
Bir SSH anahtarı, bir SSH bağlantısı aracılığıyla uzak bir sunucuya erişmek için kullanılır. Anahtarlar çiftler halinde gelir: bir genel anahtar ve bir özel anahtar. Açık anahtar sunucuda tutulur ve özel anahtar kullanıcıda veya istemcide bulunur. Sunucu, genel anahtarı kullanarak şifrelenmiş bir mesaj göndererek kullanıcının kimliğini doğrular. Kullanıcı mesajın şifresini çözebilirse, sunucu bunu kullanıcının özel anahtara sahip olduğunun kanıtı olarak kabul eder.
3. SSH ve SSL/TLS arasındaki fark nedir?
SSH ile amaç uzak bir sunucu ile güvenli bir şekilde iletişim kurmaktır ve sunucu sadece yetkili kullanıcıların kendisiyle iletişim kurduğundan emin olmalıdır. İstemci, sunucuya iddia ettiği kişi olduğunu kanıtlamak zorundadır.
Okumanızı Öneririz: TLS Nedir? SSL/TLS Kullanarak Güvenli E-posta Gönderin veya Alın
SSL ile amaç, bir sunucu ile kullanıcı arasında şifreli iletişim sağlamaktır, ancak kullanıcıyı doğrulamaya veya kimlik doğrulamasına gerek yoktur. SSL sertifikasının amacı, sunucunun kullanıcının erişmeye çalıştığı sunucu olduğundan ve iletişim paketlerinin tahrif edilmediğinden emin olmaktır.
İlgili İçerikler:
Uçtan Uca Şifreleme (E2EE): Nedir, Nasıl Çalışır? E-posta İletişiminde Uçtan Uca Şifreleme
Firewall Nedir, Ne İşe Yarar? Firewall Türleri
VPN Nedir, Nasıl Kullanılır? VPN Hakkında Bilmen Gereken Her Şey