Windows 11’de SSH kullanımı, uzaktan sunucu yönetimi ve güvenli bağlantı kurmak isteyen kullanıcılar için büyük kolaylık sağlar. SSH, uzun yıllar boyunca Linux ve macOS sistemlerde yerleşik olarak bulunurken, Windows kullanıcıları bu özelliği kullanabilmek için genellikle üçüncü taraf yazılımlara ihtiyaç duyuyordu. Microsoft’un OpenSSH’i Windows 11’e yerleşik olarak entegre etmesi sayesinde artık ek bir program yüklemeden, doğrudan Komut İstemi (CMD) veya PowerShell üzerinden güvenli SSH bağlantıları kurmak mümkün. Bu rehberde; Windows 11’de SSH nasıl etkinleştirilir, SSH bağlantısı nasıl kurulur, temel komutlar nelerdir ve SSH’ın gelişmiş özelliklerinden nasıl yararlanılır gibi merak edilen tüm sorulara adım adım ve yanıtlar bulacaksınız.
SSH Nedir?
SSH (Secure Shell), ağ üzerinden uzak sunuculara güvenli bağlantı kurmanızı sağlayan, şifreleme tabanlı bir ağ protokolüdür. 1995 yılında Tatu Ylönen tarafından geliştirilen SSH, özellikle güvensiz ağ ortamlarında bile verilerin güvenli şekilde iletilmesini mümkün kılar. Bu nedenle günümüzde Linux, Windows ve macOS sistemlerde yaygın olarak kullanılmaktadır.
SSH’nin en büyük avantajı, tüm veri trafiğini uçtan uca şifrelemesidir. Gönderilen komutlar, parolalar ve dosyalar üçüncü kişiler tarafından okunamaz veya değiştirilemez. Bu özellik, SSH’yi sistem yöneticileri, yazılımcılar ve sunucu yöneten herkes için standart bir güvenlik aracı haline getirir. Windows 11, yerleşik OpenSSH desteği sayesinde SSH kullanımını oldukça kolaylaştırır. Windows 11’de SSH kullanmanın başlıca faydaları şunlardır:
- Uzak Linux veya Windows sunuculara hızlı komut satırı erişimi.
- Güvenli dosya transferi (SFTP / SCP).
- Uzak masaüstüne alternatif, hafif ve hızlı bir yönetim yöntemi.
- Ağ tünelleme ve port yönlendirme ile gelişmiş bağlantı senaryoları.
- AWS, Azure, DigitalOcean gibi bulut sunucularını güvenli şekilde yönetme imkânı.
Windows 11’de OpenSSH Durumunu Kontrol Etme
Windows 11’de SSH kullanmaya başlamadan önce, sisteminizde OpenSSH istemcisinin yüklü olup olmadığını kontrol etmeniz gerekir. Microsoft, Windows 10 (1809 sürümü) ve sonrasında OpenSSH’ı isteğe bağlı bir özellik olarak sunmaya başladı. Windows 11’de ise bu özellik genellikle varsayılan olarak yüklü gelir, ancak bazı durumlarda manuel etkinleştirme gerekebilir.
- Windows tuşuna basın ve “Terminal” veya “PowerShell” yazarak Windows Terminal’i veya PowerShell’i yönetici olarak açın. Yönetici hakları, OpenSSH durumunu kontrol etmek için gereklidir.
- Şu PowerShell komutunu kopyalayıp yapıştırın:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*' - Komut çıktısında “State : Installed” görüyorsanız, OpenSSH zaten yüklüdür. “State : NotPresent” görüyorsanız, bir sonraki bölümde OpenSSH’ı nasıl yükleyeceğinizi öğreneceksiniz.
“OpenSSH Client” ve “OpenSSH Server” olmak üzere iki farklı bileşen görürsünüz. İstemci, uzak sunuculara bağlanmak için; sunucu ise Windows bilgisayarınıza SSH üzerinden bağlanılmasına izin vermek için kullanılır. Çoğu kullanıcı yalnızca OpenSSH Client’a ihtiyaç duyar. Ancak Windows bilgisayarınızı bir SSH sunucusu olarak yapılandırmak istiyorsanız (örneğin, başka cihazlardan Windows 11 bilgisayarınıza SSH ile bağlanmak için), OpenSSH Server’ı da yüklemeniz gerekir.
Windows OpenSSH Yükleme ve Etkinleştirme
Windows 11’de OpenSSH yüklü değilse veya devre dışıysa, bu özelliği etkinleştirmenin ve yüklemenin birden fazla pratik yolu bulunur. En sık tercih edilen ve kullanıcılar için en kolay yöntemler; Windows Ayarları üzerinden OpenSSH kurulumu, PowerShell komutları ile OpenSSH yükleme ve İsteğe Bağlı Özellikler panelinden OpenSSH etkinleştirme seçenekleridir. Tüm bu yöntemler aynı işlevi yerine getirir ve OpenSSH’nin sorunsuz şekilde çalışmasını sağlar. Teknik bilginize ve kullanım alışkanlığınıza göre sizin için en uygun yöntemi tercih edebilirsiniz.
- Windows Ayarları:
- Başlat menüsünü açın ve “
Ayarlar” uygulamasına girin. - “
Uygulamalar” sekmesine tıklayın. - “
İsteğe Bağlı Özellikler” seçeneğini bulun. - “
Özellik ekle” butonuna tıklayın. - Arama kutusuna “
OpenSSH” yazın. - “
OpenSSH Client” seçeneğini işaretleyin ve “Yükle” butonuna tıklayın. - Yükleme tamamlanana kadar bekleyin (genellikle 1-2 dakika sürer).
- Başlat menüsünü açın ve “
- PowerShell Yöntemi:
- PowerShell’i yönetici olarak açın ve şu komutu çalıştırın:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 - Sunucu bileşenini yüklemek için:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 - Bu yöntem daha hızlıdır ve özellikle toplu kurulumlar veya script’ler için idealdir.
- PowerShell’i yönetici olarak açın ve şu komutu çalıştırın:
Windows OpenSSH etkinleştirme işlemi tamamlandıktan sonra, terminali kapatıp yeniden açmanız gerekebilir. Bu, ortam değişkenlerinin güncellenmesini sağlar. Yükleme başarılı olup olmadığını kontrol etmek için, herhangi bir terminal penceresinde ssh -V komutunu çalıştırın. OpenSSH sürüm numarasını görüyorsanız (örneğin, “OpenSSH_for_Windows_8.1p1”), yükleme başarıyla tamamlanmış demektir.
Windows 11’de SSH Bağlantısı Kurma
OpenSSH yüklendikten sonra uzak sunuculara SSH ile bağlanmaya hazırsınız. SSH bağlantısı kurmak için temel sözdizimi oldukça basittir, ancak çeşitli parametreler ve seçenekler kullanarak bağlantıyı özelleştirebilirsiniz. SSH bağlantısı kurarken tipik olarak kullanıcı adı, sunucu IP adresi veya alan adı, ve isteğe bağlı olarak port numarası belirtmeniz gerekir.
- Windows Terminal, PowerShell veya Komut İstemi’ni açın. Normal kullanıcı hakları yeterlidir; yönetici hakları gerekmez.
- Temel bağlantı sözdizimi:
ssh kullanici_adi@sunucu_adresi(Örnek:ssh admin@192.168.1.100) - İlk kez bağlanırken, sunucunun parmak izini (fingerprint) onaylamanız istenecektir. “yes” yazıp Enter’a basın.
- Şifrenizi girin. (Şifre yazarken ekranda herhangi bir karakter görünmez; bu normal bir güvenlik önlemidir.)
# Gelişmiş Bağlantı Seçenekleri
- Varsayılan SSH portu 22’dir, ancak sunucu farklı bir port kullanıyorsa
-pparametresiyle belirtebilirsiniz:ssh -p 2222 kullanici@sunucu.com - Özel bir SSH anahtarı kullanmak için
-iparametresini kullanın:ssh -i C:\Users\kullanici\.ssh\ozel_anahtar kullanici@sunucu.com - Verbose (ayrıntılı) çıktı için
-vparametresi ekleyin (sorun giderme için kullanışlıdır):ssh -v kullanici@sunucu.com
📌 Windows 11 SSH bağlantısı kurduğunuzda, uzak sunucunun komut satırına tam erişim kazanırsınız. Dikkatli olun ve yalnızca güvendiğiniz sunuculara bağlanın.
# SSH Anahtar Çifti Oluşturma ve Kullanma
SSH ile bağlantı kurarken her seferinde şifre girmek yerine, daha güvenli ve pratik bir yöntem olan SSH anahtar çiftlerini kullanabilirsiniz. SSH anahtar çifti, bir genel anahtar (public key) ve bir özel anahtardan (private key) oluşur. Genel anahtarı sunucuya yüklersiniz, özel anahtarı ise kendi bilgisayarınızda saklarsınız. Bu yöntem, hem güvenliği artırır hem de otomatik bağlantılar için ideal bir çözümdür.
- PowerShell veya Terminal’de şu komutu çalıştırın:
ssh-keygen -t rsa -b 4096 -C "email@ornek.com"(Bu komut 4096 bit RSA algoritması kullanarak güçlü bir anahtar çifti oluşturur.) - Varsayılan konum:
C:\Users\KullaniciAdi\.ssh\id_rsa(Enter’a basarak varsayılanı kabul edebilir veya özel bir konum belirtebilirsiniz.) - İsteğe bağlı olarak özel anahtarınız için bir şifre belirleyebilirsiniz. Ek güvenlik katmanı sağlar.
- Oluşturulan
id_rsa.pubdosyasının içeriğini kopyalayın ve sunucudaki~/.ssh/authorized_keysdosyasına ekleyin. - Anahtar çiftinizi oluşturduktan ve genel anahtarı sunucuya yükledikten sonra, artık şifre girmeden bağlanabilirsiniz:
ssh kullanici@sunucu.com - Özel anahtarınız varsayılan konumda (
~/.ssh/id_rsa) değilse,-iparametresiyle belirtmeniz gerekir:ssh -i C:\yol\ozel_anahtar kullanici@sunucu.com
SSH ile Dosya Transferi (SCP ve SFTP)
SSH yalnızca uzak komut satırı erişimi sağlamakla kalmaz, aynı zamanda güvenli dosya transferi için de kullanılabilir. Windows 11’de SSH ile dosya transferi yapmanın iki ana yöntemi vardır: SCP (Secure Copy Protocol) ve SFTP (SSH File Transfer Protocol). Her iki protokol de SSH’ın güvenlik altyapısını kullanarak dosyalarınızı şifreli olarak aktarır.
# SCP Kullanımı
SCP, hızlı ve basit dosya kopyalama için idealdir. Komut satırından doğrudan kullanılır ve betik otomasyonu için mükemmeldir.
- Yerel → Uzak– Bilgisayarınızdan sunucuya dosya göndermek için:
scp C:\yol\dosya.txt kullanici@sunucu.com:/hedef/yol/ - Uzak → Yerel– Sunucudan bilgisayarınıza dosya indirmek için:
scp kullanici@sunucu.com:/yol/dosya.txt C:\hedef\klasor\ - Klasör Transferi– Tüm klasörü kopyalamak için
-rparametresini kullanın:scp -r C:\klasor kullanici@sunucu.com:/hedef/
# SFTP Kullanımı
SFTP, etkileşimli bir dosya transfer oturumu sağlar ve FTP’ye benzer bir deneyim sunar. Büyük dosya transferleri ve dizin taraması için SCP’den daha uygun olabilir.
- SFTP oturumu başlatmak için:
sftp kullanici@sunucu.com - SFTP bağlantısı kurulduktan sonra kullanabileceğiniz yaygın komutlar:
ls– Uzak dizini listelells– Yerel dizini listelecd– Uzak dizin değiştirlcd– Yerel dizin değiştirpwd– Uzak çalışma dizinini gösterget dosya.txt– Dosya indirput dosya.txt– Dosya yüklemkdir klasor– Dizin oluşturrm dosya.txt– Dosya silexit– SFTP oturumunu kapat
- SCP tek seferlik transferler için, SFTP ise birden fazla dosya işlemi yapacaksanız daha verimlidir. Her ikisi de aynı güvenlik seviyesini sunar.
SSH Sorun Giderme ve İpuçları
SSH kullanırken zaman zaman bağlantı sorunlarıyla karşılaşabilirsiniz. Bu sorunların çoğu basit yapılandırma hataları, ağ problemleri veya güvenlik duvarı ayarlarından kaynaklanır. Bu bölümde, en yaygın SSH sorunlarını ve çözümlerini ele alacağız.
- SSH bağlantısı kurulamıyor ve “Connection timed out” hatası:
- Sunucu IP adresinin doğru olduğundan emin olun.
- Sunucunun çalıştığını ve SSH servisinin aktif olduğunu kontrol edin.
- Güvenlik duvarı kurallarını kontrol edin (hem yerel hem sunucu tarafında).
- Ping testi yapın:
ping sunucu.com - Farklı bir port deneyin:
ssh -p 2222 kullanici@sunucu.com
- İzin Reddedildi (Permission Denied):
- Kullanıcı adının doğru olduğundan emin olun
- SSH anahtar dosyasının doğru konumda olduğunu kontrol edin
- Anahtar dosyası izinlerini kontrol edin (çok açık izinler sorun yaratabilir)
- Verbose modu ile detaylı hata mesajı alın:
ssh -vvv kullanici@sunucu.com - Genel anahtarın sunucuda
~/.ssh/authorized_keysdosyasında olduğunu doğrulayın.
- “WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED” hatası:
- Bu genellikle sunucu yeniden kurulduğunda veya IP adresi değiştiğinde olur
- Eski host key’i silmek için:
ssh-keygen -R sunucu.com - Alternatif olarak
C:\Users\KullaniciAdi\.ssh\known_hostsdosyasından ilgili satırı manuel silin - Tekrar bağlanın ve yeni host key’i onaylayın.
- Bağlantı Kapanıyor (Connection Closed):
- Sunucu tarafı loglarını kontrol edin
- Shell yapılandırmasının doğru olduğundan emin olun
- Disk alanı, bellek gibi sunucu kaynaklarını kontrol edin
/etc/ssh/sshd_configdosyasındaki MaxSessions ayarını kontrol edin.
SSH Güvenliği
SSH güçlü bir güvenlik protokolü olsa da, doğru yapılandırılmadığında güvenlik açıkları oluşabilir. Özellikle sunucu tarafında SSH çalıştırıyorsanız, aşağıdaki güvenlik önlemlerini mutlaka uygulamalısınız.
- Anahtar Tabanlı Kimlik Doğrulama Kullanın: Şifre tabanlı kimlik doğrulama yerine her zaman SSH anahtarları kullanın. Şifreler kaba kuvvet saldırılarına karşı savunmasızdır. SSH anahtarları ise matematiksel olarak çok daha güvenlidir ve tahmin edilmeleri neredeyse imkansızdır. Anahtar oluştururken en az 2048 bit, tercihen 4096 bit RSA veya Ed25519 algoritması kullanın. Şifre kimlik doğrulamayı tamamen devre dışı bırakmayı düşünün:
PasswordAuthentication no - Varsayılan Portu Değiştirin: SSH’ın varsayılan 22 portu, otomatik tarama ve saldırılar için birincil hedeftir. Portu 1024-65535 arasında farklı bir değere değiştirerek basit otomatik saldırıların çoğunu engelleyebilirsiniz. Örneğin
sshd_configdosyasındaPort 2222olarak ayarlayın. Port değiştirme tek başına yeterli değildir, ancak güvenlik katmanlarından biridir. Unutmayın, değiştirdiğiniz portu güvenlik duvarında da açmanız gerekir. - Güvenlik Duvarı Kuralları Uygulayın: SSH erişimini yalnızca belirli IP adreslerinden veya IP aralıklarından sınırlandırın. Windows Güvenlik Duvarı’nda gelişmiş güvenlik ayarlarından SSH portuna erişimi kısıtlayabilirsiniz. Eğer sabit bir IP adresiniz varsa, yalnızca o IP’den SSH erişimine izin verin. VPN kullanıyorsanız, SSH erişimini yalnızca VPN ağından verin. Fail2ban gibi araçlar, başarısız oturum açma denemelerini tespit edip IP adreslerini otomatik olarak engelleyebilir.
- Root Girişini Devre Dışı Bırakın: Doğrudan root (veya Administrator) hesabıyla SSH girişine asla izin vermeyin. Bunun yerine normal bir kullanıcı hesabıyla giriş yapın ve gerektiğinde
sudoveya yönetici hakları kullanın.sshd_configdosyasındaPermitRootLogin noayarını yapın. Saldırganlar genellikle root hesabını hedef alır çünkü tüm sistemlerde varsayılan yönetici hesabıdır. Normal kullanıcı hesapları üzerinden giriş yapmak ek bir güvenlik katmanı sağlar. - Oturum Zaman Aşımı Ayarlayın: Boşta kalan SSH oturumları güvenlik riski oluşturur.
ClientAliveIntervalveClientAliveCountMaxayarlarını kullanarak belirli bir süre boyunca aktif olmayan bağlantıları otomatik olarak kapatabilirsiniz. Örneğin, 10 dakika sonra bağlantıyı kesmek için:ClientAliveInterval 300veClientAliveCountMax 2ayarlarını yapın. Bu, unutulan veya terk edilmiş oturumların kötüye kullanılmasını önler. - Düzenli Güncellemeler Yapın: OpenSSH ve Windows işletim sistemini her zaman güncel tutun. Güvenlik açıkları düzenli olarak keşfedilir ve yamalanır. Windows Update’i etkin tutun ve kritik güncellemeleri hemen yükleyin. OpenSSH sürümünüzü kontrol etmek için
ssh -Vkomutunu kullanın. Eski sürümler bilinen güvenlik açıklarına sahip olabilir. Ayrıca SSH log dosyalarını düzenli olarak inceleyin ve şüpheli aktiviteleri izleyin.
