SSH (Secure Shell), ağ üzerinden güvenli bir şekilde uzak sistemlere erişim sağlamak için kullanılan kriptografik bir protokoldür. Özellikle sistem yöneticileri tarafından sunuculara bağlanmak, dosya transferi yapmak ve komut çalıştırmak amacıyla yaygın şekilde kullanılır.

SSH’nin Temel Özellikleri
- Şifreleme (Encryption): Tüm veri iletimi uçtan uca şifrelenir.
- Kimlik Doğrulama (Authentication): Kullanıcı doğrulaması hem şifreyle hem de anahtar tabanlı yapılabilir.
- Veri Bütünlüğü (Data Integrity): Aktarılan verinin değiştirilmediği doğrulanır.
🛡️ SSH ile Şifreli (Password Authentication) Erişim
En temel SSH kullanım şekli, kullanıcı adı ve parola ile oturum açmaktır.
Kurulum ve Erişim:
Sunucuya OpenSSH yüklenmelidir :
sudo apt install openssh-server
Sunucu IP adresine bağlanmak için istemci tarafında şu komut kullanılır:
ssh kullaniciadi@sunucu_ip
Bağlantı sırasında sistem şifre ister. Doğru şifre girildiğinde bağlantı kurulur.
Avantajlar:
- Hızlı kurulum
- Her yerden erişim
Dezavantajlar:
- Şifre tahminine dayalı saldırılara (brute-force) açıktır
- Güvenlik seviyesi, kullanılan parolanın karmaşıklığına bağlıdır
🔑 SSH ile Şifresiz (Anahtar Tabanlı) Erişim
Arkadaşlar anahtar tabanlı şifrelemeye değinmeden önce şifreleme algoritmasına değinmek istiyorum.
🔐 SSH’de Kullanılan Anahtar Şifreleme Algoritmaları
SSH protokolü, özellikle şifresiz (anahtar tabanlı) erişimde asimetrik şifreleme yöntemini kullanır. Bu sistemde biri açık anahtar (public key), diğeri özel anahtar (private key) olmak üzere iki anahtar bulunur. Açık anahtar sunucuya kopyalanırken, özel anahtar sadece istemcide kalır ve kimlik doğrulama bu çift üzerinden sağlanır.
Aşağıda SSH’de yaygın olarak kullanılan bazı şifreleme algoritmaları yer almaktadır:
- RSA (Rivest–Shamir–Adleman): En klasik ve yaygın kullanılan algoritmadır. Genellikle 2048 veya 4096 bit anahtar uzunluğu tercih edilir. Güvenilirdir ama günümüzde daha modern alternatifleri vardır.
- ECDSA (Elliptic Curve Digital Signature Algorithm): Eliptik eğri kriptografisine dayanır. RSA’ya göre daha küçük anahtarlarla benzer güvenlik sağlar. Ancak her sistemde desteklenmeyebilir.
- ED25519: Modern, hızlı ve güvenliği yüksek bir algoritmadır. Düşük kaynak tüketimi ve sabit boyuttaki anahtarı ile hem güvenli hem de performanslı bir seçenektir. Yeni SSH yapılandırmalarında önerilir.
Bu algoritmalar arasında seçim yaparken kullanım amacına, sistemin desteklediği sürümlere ve güvenlik ihtiyaçlarına göre karar verilmelidir. Örneğin, otomasyon ve hız gerekiyorsa ED25519 tercih edilebilir; maksimum uyumluluk aranıyorsa RSA daha uygun olabilir.
Şimdi anahtar çifti oluşturabiliriz.
* Anahtar çiftini oluşturmadan önce dikkatinizi çekmek isteğim bir nokta ise şudur anahtar çiftini bağlanacağınız hedef cihazda değil de kullanacağınız hedef cihazda oluşturmanızı daha verimli ve sağlıklı olur. Güvenlik açısından da fayda teşkil eder.
Adımlar:
- Anahtar Çifti Oluşturma (istemcide) :
Burada RSA algoritması kullanılarak bir anahtar çifti oluşturuluyor 4096 BİT tanımlanıyor.
ssh-keygen -t rsa -b 4096
Burada oluşturulan dosyalar linux dizininde ki home(ev) dizinini temsil eder ev deki (.ssh) klasörünü ifade eder
Oluşturulan dosyalar ( Linux ) :
- ~/.ssh/id_rsa (özel anahtar)
- ~/.ssh/id_rsa.pub (açık anahtar)
Oluşturulan dosyalar ( Windows ) :
- C:\Users\KullanıcıAdınız\.ssh\id_rsa (özel anahtar)
- C:\Users\KullanıcıAdınız\.ssh\id_rsa.pub (açık anahtar)
Açık Anahtarı Sunucuya Kopyalama :
ssh-copy-id kullaniciadi@sunucu_ip
Artık şu komutla şifresiz erişim sağlanabilir:
ssh kullaniciadi@sunucu_ip
Önemli bazı parametreler var değiştirilmesi gereken şifresiz erişim için
sshd_config yapılanmasına aşağıda ki ifadeler yapıştırılır sonrasında ise
PasswordAuthentication no → Şifre ile kimlik doğrulamayı devre dışı bırakır.
PubkeyAuthentication yes → Genel anahtar (SSH key) ile kimlik doğrulamayı etkinleştirir.
ChallengeResponseAuthentication no → Ek doğrulama yöntemlerini (örneğin, CAPTCHA, OTP) kapatır.
AuthorizedKeysFile .ssh/authorized_keys → Yetkili genel anahtarların bulunduğu dosyayı belirtir.
Sonrasında ise service restart ssh veya systemctl ssh restart yazılarak ayarları servis tekrar başlatılır ve yeni konfigürasyon ayarları çalışır duruma geçer.
🛡️ YubiKey ile SSH Kullanımı Nedir ?
YubiKey, fiziksel bir güvenlik anahtarıdır. USB veya NFC üzerinden çalışan bu cihaz, şifre yerine geçebilecek veya şifreyi tamamlayacak ikinci bir güvenlik katmanı sunar. SSH ise, uzaktaki bir bilgisayara güvenli bağlantı kurmak için kullanılan bir protokoldür. Özellikle sunuculara erişimde yaygındır.
İkisini bir araya getirdiğimizde, sunucuya bağlanmak için hem özel anahtarınıza hem de fiziksel olarak YubiKey cihazına ihtiyacınız olur. Yani birinin sadece şifrenizi ya da anahtarınızı çalması yetmez, YubiKey’in kendisi olmadan bağlanamaz.
🔐 Neden YubiKey ile SSH Kullanmalı ?

1. Fiziksel Güvenlik Katmanı
Bilgisayar korsanları, internette dolaşan şifreleri veya özel anahtarları ele geçirebilir. Ama YubiKey fiziksel bir cihaz olduğundan çalınması çok daha zordur. Cihaz yanınızdaysa, erişim sizdedir.
2. Anahtarlar Cihaz Dışına Çıkmaz
YubiKey, özel anahtarınızı içinde saklar. Bu anahtar dış dünyaya hiçbir zaman gönderilmez. Yani sunucuyla bağlantı kurarken sadece “imzalama işlemi” yapılır. Anahtar güvendedir.
3. Güvenli Kimlik Doğrulama
SSH bağlantısında genellikle özel bir anahtar (private key) kullanılır. Bu anahtar bilgisayarda saklanırsa, cihaz çalınırsa veya ele geçirilirse sistemlere erişim sağlanabilir. YubiKey bu riski ortadan kaldırır.
🧠 İşleyiş Mantığı
- YubiKey, bir akıllı kart gibi davranır. İçinde bir GPG veya PIV (Personal Identity Verification) modülü çalışır.
- SSH bağlantısı kurmak isteyen kullanıcı, terminalde bir komut verdiğinde:
- Sistem YubiKey’e bir “imza isteği” yollar.
- YubiKey cihazı takılıysa ve PIN girilmişse, bu isteği imzalar ve onay verir.
- Bağlantı gerçekleşir.
Bu işlem saniyeler içinde olur ama ardında güçlü bir kriptografi çalışır.
💡 Günlük Hayatta Nasıl Kullanılır?
- Sunuculara SSH ile bağlanırken, normalde şifre veya yazılı bir anahtar girersiniz. YubiKey olduğunda, anahtar cihazda saklanır ve fiziksel olarak sizden onay alır.
- Laptop’ınızı biri çalsa bile, YubiKey olmadan sunucuya erişemez.
- Çoklu sunucularda ya da uzaktan çalışan ekiplerde, bu cihazlar kullanılarak erişimler çok daha güvenli hale getirilebilir.
⚠️ Unutmamanız Gerekenler
- YubiKey kaybolursa, yedeği veya kurtarma anahtarınız olmalı. Yoksa sunucuya bir daha erişemeyebilirsiniz.
- PIN kodunuzu unutmayın, çünkü cihaz sizden PIN ile onay ister.
- Yedekleme stratejiniz olmalı. En iyi uygulama, 1 anahtar ve 1 yedek cihaz taşımaktır.
🚀 Sonuç: Siber Güvenlikte Yeni Seviye
SSH zaten güvenli bir protokol, ancak YubiKey ile birleştiğinde bu güvenlik zirveye çıkar. Fiziksel kimlik doğrulama sayesinde sadece şifrelere güvenmekten kurtuluruz. Kritik sistemlere erişim artık sadece bilgiyle değil, donanım ve bilgi birleşimiyle mümkün olur.
Bu, özellikle devlet sistemleri, kurumsal sunucular ya da hassas veri içeren altyapılar için geleceğe dönük güvenlik yaklaşımıdır.