SSH Nedir ve Nasıl Çalışır?
Günümüzde uzaktan sunucu yönetimi, yazılım geliştirme ve sistem idaresi gibi işlemler için sıklıkla kullanılan SSH (Secure Shell), güvenli bir iletişim protokolüdür. Bu yazıda SSH’nin ne olduğunu, nasıl çalıştığını ve nasıl kullanıldığını kolay anlaşılır bir dille anlatacağız.
SSH Nedir?
SSH (Secure Shell), ağ üzerinden başka bir bilgisayara güvenli bir şekilde bağlanmak için kullanılan bir protokoldür. Genellikle uzak bir sunucuyu yönetmek, dosya aktarmak veya komut çalıştırmak için tercih edilir.
En büyük avantajı, şifreli bir iletişim kurarak kötü niyetli kişilerin veri akışını okumasını ya da müdahale etmesini önlemesidir.
SSH Nasıl Çalışır?
SSH’nin çalışması üç temel adıma dayanır:
- Kimlik Doğrulama (Authentication)
- Şifreleme (Encryption)
- Veri Bütünlüğü Sağlama (Data Integrity)
1. Kimlik Doğrulama
Kullanıcı, bir SSH istemcisi (örneğin: PuTTY, OpenSSH) kullanarak uzak sunucuya bağlanmak istediğinde, sunucu kullanıcının kimliğini doğrulamak ister. Bu işlem genellikle iki yolla yapılır:
- Parola ile: Kullanıcı adı ve şifre girilir.
- Anahtar tabanlı doğrulama: Kullanıcının bilgisayarında bir özel anahtar (private key) vardır. Bu anahtara karşılık gelen genel anahtar (public key) daha önce sunucuya yüklenmiştir.
2. Şifreleme
SSH bağlantısı kurulduktan sonra, tüm veri alışverişi şifrelenir. Böylece araya giren biri bu verileri görse bile okuyamaz.
3. Veri Bütünlüğü
SSH, gönderilen verilerin değişmeden alıcıya ulaştığından emin olmak için “message authentication code (MAC)” adı verilen özel imzalar kullanır.
SSH Bağlantısı Nasıl Kurulur?
Bir örnek üzerinden açıklayalım:
ssh kullaniciadi@sunucu_ip_adresi
Örnek:
ssh root@192.168.1.100
İlk bağlantıda sunucu size kendi kimliğini (public key fingerprint) gösterir ve “bu sunucuya güveniyor musunuz?” diye sorar. “yes” yazarsanız bu anahtarı hafızaya alır ve bağlantı kurulur.
SSH Anahtarları ile Güvenli Bağlantı
Parola yerine daha güvenli bir yöntem olan SSH anahtar çifti kullanabilirsiniz. Anahtarlar şu şekilde oluşturulur:
ssh-keygen
Bu komutla iki dosya oluşur:
id_rsa
: Özel anahtar (gizli tutulur!)id_rsa.pub
: Genel anahtar (sunucuya yüklenir)
Sunucuya genel anahtarı kopyalamak için:
ssh-copy-id kullaniciadi@sunucu_ip
Artık parolaya gerek kalmadan bağlanabilirsiniz.
SSH ile Yapılabilecekler
- Uzak sunucuya komut gönderme
ssh kullanici@sunucu "uptime"
- Dosya kopyalama (SCP)
scp dosya.txt kullanici@sunucu:/hedef/klasor
- Tünelleme (Port Forwarding) SSH ile uzak sistemdeki bir servisi kendi sisteminizdeymiş gibi kullanabilirsiniz.
ssh -L 8080:localhost:80 kullanici@sunucu
Bu örnekte, sunucudaki 80 numaralı port (örneğin bir web sunucusu) sizin bilgisayarınızda 8080 portundan ulaşılabilir hale gelir.
Güvenlik İçin İpuçları
- Parola yerine SSH anahtarı kullanın.
root
kullanıcısıyla bağlantıyı engelleyin.- SSH bağlantı portunu değiştirmek (örneğin 22 yerine 2222) brute force saldırılarına karşı etkili olabilir.
- Fail2Ban gibi araçlarla şüpheli girişimleri engelleyin.
Sonuç
SSH, uzaktan yönetim için vazgeçilmez bir araçtır. Hem güvenli hem de esnektir. Doğru yapılandırma ve alışkanlıklarla, sistemlerinizi hem pratik hem de güvenli bir şekilde yönetebilirsiniz.
SSH’yi anlamak, sistem yöneticileri ve yazılımcılar için temel bir beceridir. Umarım bu yazı, sizde bu konuda sağlam bir temel oluşturmuştur.