SSH (Secure Shell), uzak bir sunucuya veya bilgisayara güvenli şekilde bağlanmayı sağlayan şifrelenmiş bir ağ protokolüdür. Sistem yöneticileri, yazılım geliştiriciler ve sunucu yöneten kullanıcılar tarafından en çok kullanılan uzaktan erişim yöntemlerinden biridir. SSH sayesinde internet üzerinden yapılan tüm veri alışverişi şifrelenerek üçüncü kişilerin iletişimi dinlemesi veya ele geçirmesi büyük ölçüde engellenir.
SSH Nedir? Temel SSH Komutları
SSH (Secure Shell), uzak bir sunucuya veya bilgisayara güvenli şekilde bağlanmayı sağlayan şifrelenmiş bir ağ protokolüdür. Sistem yöneticileri, yazılım geliştiriciler ve sunucu yöneten kullanıcılar tarafından en çok kullanılan uzaktan erişim yöntemlerinden biridir. SSH sayesinde internet üzerinden yapılan tüm veri alışverişi şifrelenerek üçüncü kişilerin iletişimi dinlemesi veya ele geçirmesi büyük ölçüde engellenir.
Günümüzde Linux sunucuların büyük çoğunluğu SSH üzerinden yönetilmektedir. Sunucuya fiziksel erişim gerektirmeden dosya yönetimi, servis kontrolü, kullanıcı işlemleri, yazılım kurulumu, güvenlik yapılandırmaları ve sistem güncellemeleri güvenli şekilde gerçekleştirilebilir.
SSH, Telnet protokolünün güvenli alternatifi olarak geliştirilmiştir. Telnet'te bilgiler şifrelenmeden iletilirken, SSH tüm iletişimi güçlü şifreleme algoritmaları ile korur.
SSH Nasıl Çalışır?
SSH istemci (client) ve sunucu (server) mantığıyla çalışır. Kullanıcı bilgisayarından SSH istemcisi aracılığıyla uzak sunucudaki SSH servisine bağlantı kurulur. Kimlik doğrulaması başarıyla tamamlandıktan sonra kullanıcı, sunucuyu komut satırı üzerinden yönetebilir.
SSH bağlantılarında kullanıcı adı ve parola kullanılabileceği gibi çok daha güvenli olan SSH Anahtar (SSH Key) doğrulama yöntemi de tercih edilebilir. Özellikle üretim sunucularında parola yerine anahtar doğrulaması kullanılması tavsiye edilmektedir.
SSH Kullanmanın Avantajları
- Sunuculara internet üzerinden güvenli erişim sağlar.
- Tüm veri trafiği şifrelenerek korunur.
- Linux ve Unix tabanlı sistemlerde standart olarak bulunur.
- Dosya transferi (SCP ve SFTP) desteği sunar.
- Sunucu yönetimini uzaktan kolaylaştırır.
- Otomasyon ve script çalışmalarına uygundur.
- SSH Key desteği sayesinde yüksek güvenlik sağlar.
İnternete açık sunucularda doğrudan root kullanıcısıyla giriş yapmak yerine normal bir kullanıcı oluşturup gerektiğinde sudo komutunu kullanmanız güvenlik açısından tavsiye edilir.
En Çok Kullanılan SSH Komutları
SSH bağlantısını kurduktan sonra sunucuyu yönetebilmek için Linux komutlarını bilmek büyük önem taşır. Aşağıda sistem yöneticilerinin en sık kullandığı temel SSH komutları ve kısa açıklamaları yer almaktadır.
Dizin ve Dosya İşlemleri
pwd
Bulunduğunuz dizinin tam yolunu görüntüler.
ls
Bulunduğunuz klasör içerisindeki dosya ve dizinleri listeler.
cd
Farklı dizinler arasında geçiş yapmak için kullanılır.
mkdir
Yeni klasör oluşturur.
touch
Boş bir dosya oluşturmak için kullanılır.
cp
Dosya veya klasör kopyalamaya yarar.
mv
Dosya taşıma veya yeniden adlandırma işlemlerinde kullanılır.
rm
Dosya veya klasör silmek için kullanılır.
rm -rf komutu silinen dosyaları geri dönüşüm kutusuna göndermez. Yanlış kullanılması durumunda sistem dosyalarının tamamen silinmesine neden olabilir. Bu komutu kullanmadan önce bulunduğunuz dizini mutlaka kontrol edin.
Dosya Görüntüleme ve Düzenleme Komutları
cat
Dosyanın içeriğini ekrana yazdırır.
nano
Terminal üzerinden dosya düzenlemeyi sağlayan, kullanımı kolay metin editörüdür.
head
Bir dosyanın ilk satırlarını görüntüler.
tail
Bir dosyanın son satırlarını görüntüler. Özellikle log dosyalarını takip etmek için oldukça kullanışlıdır.
tail -f komutu, log dosyasını gerçek zamanlı olarak takip etmenizi sağlar. Sunucu sorunlarını analiz ederken en sık kullanılan SSH komutlarından biridir.
Sunucu ve Servis Yönetiminde Kullanılan SSH Komutları
Linux sunucularda çalışan servisleri yönetmek, sistem kaynaklarını takip etmek ve olası problemlere hızlı müdahale edebilmek için bazı temel komutların bilinmesi gerekir. Aşağıdaki komutlar sistem yöneticilerinin en sık kullandığı SSH komutları arasında yer alır.
Servis Yönetimi
systemctl
Systemd kullanan Linux dağıtımlarında servisleri başlatmak, durdurmak ve durumlarını kontrol etmek için kullanılır.
service
Eski Linux dağıtımlarında veya uyumluluk amacıyla servis yönetiminde kullanılmaktadır.
Sistem Kaynaklarını İzleme
ps
Sunucuda çalışan işlemleri görüntüler.
top
İşlemci, bellek ve çalışan işlemleri gerçek zamanlı olarak görüntüler.
df
Disk kullanım durumunu gösterir.
du
Dosya ve klasörlerin kapladığı disk alanını hesaplar.
free
Sunucudaki RAM ve Swap kullanımını görüntüler.
uname
İşletim sistemi ve çekirdek (kernel) bilgilerini görüntüler.
df -h ve free -h komutları, sunucuda performans sorunu yaşandığında ilk kontrol edilmesi gereken komutlar arasında yer alır.
İşlem (Process) Yönetimi
kill
PID (Process ID) numarasını kullanarak çalışan bir işlemi sonlandırır.
killall
Aynı isimde çalışan tüm işlemleri sonlandırır.
watch
Belirtilen komutu belirli aralıklarla otomatik olarak çalıştırır ve sonucu sürekli günceller.
Kullanıcı Yönetimi
who
Sunucuya o anda bağlı olan kullanıcıları listeler.
passwd
Kullanıcı parolasını değiştirmek için kullanılır.
Sunucu güvenliği için tahmin edilmesi zor, güçlü parolalar kullanın ve mümkün olduğunda SSH anahtar (SSH Key) doğrulamasını tercih edin. Ayrıca root kullanıcısıyla doğrudan giriş yerine yetkili bir kullanıcı hesabı üzerinden sudo kullanmanız daha güvenli olacaktır.
SSH Kullanırken Dikkat Edilmesi Gereken Güvenlik Önlemleri
SSH, güvenli bağlantı sağlamak amacıyla geliştirilmiş bir protokol olsa da yanlış yapılandırılması durumunda yetkisiz erişim girişimlerine karşı savunmasız hale gelebilir. Özellikle internet üzerinden erişilebilen sunucularda SSH güvenliği büyük önem taşımaktadır.
Aşağıdaki güvenlik önlemleri, sunucunuzun güvenliğini önemli ölçüde artıracaktır.
Sunuculara yönelik gerçekleştirilen otomatik saldırıların büyük bölümü doğrudan SSH servisini hedef almaktadır. Bu nedenle varsayılan ayarlarla SSH kullanılması önerilmez.
1. Root Kullanıcısı ile Doğrudan Giriş Yapmayın
Linux sunucularda en yetkili kullanıcı root hesabıdır. Güvenlik açısından doğrudan root kullanıcısıyla giriş yapmak yerine normal bir kullanıcı oluşturup gerektiğinde sudo yetkisi kullanılması tavsiye edilir.
2. Şifre Yerine SSH Anahtarı Kullanın
SSH anahtar doğrulaması, klasik parola kullanımına göre çok daha güvenlidir. Anahtar tabanlı doğrulama sayesinde kaba kuvvet (Brute Force) saldırılarının büyük bölümü engellenebilir.
Oluşturulan public anahtar sunucuya kopyalandıktan sonra parola ile giriş devre dışı bırakılabilir.
3. Varsayılan SSH Portunu Değiştirin
SSH varsayılan olarak 22 numaralı port üzerinden çalışmaktadır. İnternet üzerindeki otomatik taramaların büyük kısmı bu portu hedef aldığı için farklı bir port kullanmak güvenliği artırabilir.
Port değişikliği sonrasında güvenlik duvarı kurallarının da güncellenmesi gerekir.
4. Gereksiz Kullanıcıları Devre Dışı Bırakın
SSH erişimi yalnızca ihtiyaç duyan kullanıcılarla sınırlandırılmalıdır. Kullanılmayan hesaplar silinmeli veya erişimleri kapatılmalıdır.
5. Fail2Ban Kullanın
Fail2Ban, başarısız giriş denemelerini izleyerek belirli sayıda hatalı parola girişinden sonra ilgili IP adresini otomatik olarak engeller. SSH sunucularında en çok kullanılan güvenlik araçlarından biridir.
SSH erişimini yalnızca belirli IP adreslerine izin verecek şekilde güvenlik duvarı kuralları oluşturmanız, sunucu güvenliğini önemli ölçüde artıracaktır.
SSH Kullanımında Sık Yapılan Hatalar
- Zayıf veya tahmin edilebilir parolalar kullanmak.
- Root kullanıcısıyla sürekli oturum açmak.
- Sunucu güncellemelerini ihmal etmek.
- SSH servisini internetten tamamen erişilebilir bırakmak.
- SSH loglarını düzenli olarak kontrol etmemek.
- Güvenlik duvarı kullanmamak.
Sonuç
SSH, Linux ve Unix tabanlı sunucuların uzaktan güvenli şekilde yönetilebilmesini sağlayan en önemli yönetim araçlarından biridir. Dosya yönetiminden servis kontrolüne, kullanıcı işlemlerinden sistem bakımına kadar birçok görev yalnızca SSH bağlantısı üzerinden gerçekleştirilebilir.
Temel SSH komutlarını öğrenmek, sunucu yönetiminde hız kazandırırken güvenlik önlemlerini doğru uygulamak ise sisteminizi yetkisiz erişimlere karşı korumanıza yardımcı olur. Özellikle anahtar tabanlı kimlik doğrulama, güçlü parola politikaları ve düzenli güncellemeler ile SSH çok güvenli bir yönetim ortamı sunmaktadır.
Özet Komutlar
cd
ls
pwd
mkdir
touch
nano
rm
cp
mv
tar
zip
unzip
gunzip
df -h
ps aux
top
tail
head
who
passwd
service
systemctl
kill
killall
watch
wget
reboot
shutdown
Bu makalede SSH protokolünün ne olduğu, temel kullanım amacı, en sık kullanılan SSH komutları ve güvenli kullanım için uygulanması gereken önemli güvenlik önlemleri ele alınmıştır. SSH komutlarını doğru kullanarak Linux sunucularınızı güvenli ve verimli bir şekilde yönetebilirsiniz.



