İçindekiler
- SSH Nedir ve Neden Kullanılır?
- SSH ile Bağlanmak İçin Gerekli Bilgiler
- SSH Nasıl Bağlanılır? Windows, macOS ve Linux Adımları
- macOS ve Linux’ta bağlantı
- Windows’ta bağlantı
- Tek komutla uzak komut çalıştırma
- SSH Portu ve Temel Güvenlik Ayarları
- Şifre Yerine SSH Key ile Giriş
- Sık Görülen SSH Bağlantı Hataları
- Sunucuda SSH Kullanırken Güvenlik İpuçları
- Kısa Kontrol Listesi
SSH nasıl bağlanılır sorusu, bir sunucuyu terminal üzerinden yönetmeye başlayan herkesin ilk öğrenmesi gereken konulardan biridir. SSH ile sunucunuza güvenli biçimde giriş yapabilir, dosya izinlerini düzenleyebilir, servisleri yeniden başlatabilir, logları inceleyebilir ve uzak sistemde komut çalıştırabilirsiniz. Bu rehberde Windows, macOS ve Linux üzerinden bağlantı kurmayı, şifre yerine SSH key kullanmayı, port ve güvenlik ayarlarını, sık görülen hata mesajlarını adım adım ele alacağız.
SSH Nedir ve Neden Kullanılır?
SSH, Secure Shell ifadesinin kısaltmasıdır. Temel amacı, yerel bilgisayarınız ile uzak sunucu arasında şifreli bir yönetim kanalı oluşturmaktır. Eski yöntemlerde kullanıcı adı ve parola gibi bilgiler ağ üzerinde daha riskli biçimde taşınabilirken SSH, oturum trafiğini şifreleyerek dinleme ve oturum ele geçirme riskini azaltır. OpenSSH dokümantasyonunda ssh, uzak makinede oturum açmak ve komut çalıştırmak için kullanılan istemci olarak tanımlanır.
SSH yalnızca komut satırı açmak için kullanılmaz. SFTP ile güvenli dosya aktarımı, scp ile dosya kopyalama, tünelleme, uzak Git işlemleri ve otomasyon görevleri de SSH altyapısından yararlanır. Bir VDS sunucu ya da Linux tabanlı VPS yönetiyorsanız SSH, kontrol panelinin ötesinde doğrudan sistem yönetimi yapmanızı sağlar.
SSH erişimi güçlü bir araçtır. Yanlış komutlar servis kesintisine veya veri kaybına yol açabilir. Özellikle rm, chmod, chown, güvenlik duvarı ve servis komutlarını çalıştırmadan önce ne yaptığınızı kontrol edin.
SSH ile Bağlanmak İçin Gerekli Bilgiler
Bağlantı kurmadan önce elinizde birkaç temel bilgi olmalıdır. Bunlar genellikle sunucu teslim ekranında, yönetim panelinde veya sistem yöneticiniz tarafından sağlanır. Eksik bilgi varsa rastgele denemeler yapmak yerine doğrulamak daha güvenlidir.
| Bilgi | Ne işe yarar? | Örnek |
|---|---|---|
| Sunucu IP adresi veya alan adı | Bağlanacağınız uzak makineyi belirtir. | 203.0.113.10 veya server.example.com |
| Kullanıcı adı | Sunucuda hangi hesapla oturum açacağınızı belirler. | root, ubuntu, admin |
| SSH portu | SSH servisinin dinlediği kapıdır. Varsayılan değer çoğu kurulumda 22’dir. | 22, 2222 |
| Kimlik doğrulama yöntemi | Şifre veya SSH anahtarı ile giriş yapacağınızı belirler. | Parola, özel anahtar dosyası |
| Yetki düzeyi | Kullanıcının hangi komutları çalıştırabileceğini gösterir. | sudo yetkisi olan kullanıcı |
İlk bağlantıda SSH istemcisi, sunucunun kimliğini temsil eden host key bilgisini gösterir ve onay ister. Bu uyarı normaldir, ancak IP adresini veya alan adını yanlış yazdıysanız sahte bir hedefe bağlanma riski doğar. İlk kullanımda host key bilgisini panelinizdeki kayıtla veya yöneticinizle karşılaştırmak iyi bir alışkanlıktır.
SSH Nasıl Bağlanılır? Windows, macOS ve Linux Adımları
SSH nasıl bağlanılır sorusunun kısa cevabı, terminalde ssh kullanici@sunucu komutunu çalıştırmaktır. Ancak işletim sistemine göre terminali açma, istemcinin kurulu olup olmadığını kontrol etme ve port belirtme adımları değişebilir.
macOS ve Linux’ta bağlantı
macOS ve çoğu Linux dağıtımında SSH istemcisi genellikle hazır gelir. Terminal uygulamasını açıp aşağıdaki komutu çalıştırabilirsiniz:
ssh [email protected]
Sunucunuz farklı bir SSH portu kullanıyorsa -p parametresi gerekir:
ssh -p 2222 [email protected]
İlk bağlantıda Are you sure you want to continue connecting? benzeri bir onay görürseniz sunucu kimliğini doğruladıktan sonra yes yazabilirsiniz. Ardından parola istenir. Parola yazarken ekranda karakter görünmemesi normaldir.
Windows’ta bağlantı
Windows 10, Windows 11 ve güncel Windows Server sürümlerinde OpenSSH istemcisi Microsoft tarafından desteklenen bir özellik olarak sunulur. Microsoft Learn belgeleri, OpenSSH’nin Windows’ta uzak oturum açma için kullanılan SSH protokolünü temel aldığını ve istemci, sunucu, ssh-keygen, ssh-agent, scp ve sftp gibi bileşenler içerdiğini açıklar. Windows Terminal veya PowerShell açıp şu komutu kullanabilirsiniz:
ssh [email protected]
ssh komutu tanınmıyorsa Windows Ayarları içinden isteğe bağlı özelliklerde OpenSSH Client bileşenini kontrol edin. Kurumsal makinelerde bu özellik kapalı olabilir, bu durumda sistem yöneticinizden izin istemeniz gerekebilir.
Tek komutla uzak komut çalıştırma
Bazen interaktif oturum açmadan tek bir komut çalıştırmak istersiniz. Örneğin disk kullanımını görmek için:
ssh [email protected] 'df -h'
Bu yöntem yedekleme betikleri, durum kontrolleri ve otomasyon işleri için kullanışlıdır. Ancak otomasyonlarda şifre yerine anahtar tabanlı giriş tercih edilmelidir.
SSH Portu ve Temel Güvenlik Ayarları
SSH servisi genellikle 22 numaralı porttan çalışır. Portu değiştirmek tek başına güvenlik sağlamaz, fakat otomatik tarama ve kaba kuvvet denemelerinin görünürlüğünü azaltabilir. Asıl güvenlik, güçlü kimlik doğrulama, güncel paketler, sınırlı kullanıcı yetkisi ve doğru güvenlik duvarı kurallarıyla sağlanır.
Linux sunucularda OpenSSH sunucu ayarları çoğunlukla /etc/ssh/sshd_config dosyasında tutulur. Örnek temel ayarlar şöyle olabilir:
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Bu ayarları değiştirdikten sonra SSH servisini yeniden başlatmadan önce yapılandırmayı test etmek akıllıca olur:
sudo sshd -t
Hata yoksa servisi yeniden yükleyebilirsiniz:
sudo systemctl reload ssh
Bazı dağıtımlarda servis adı sshd olabilir:
sudo systemctl reload sshd
SSH portunu veya parola ayarını değiştirirken mevcut oturumunuzu kapatmayın. Yeni bir terminal penceresi açıp yeni ayarlarla giriş yapabildiğinizi doğruladıktan sonra eski oturumu kapatın.
Güvenlik duvarı kullanıyorsanız yeni portu açmadan eski portu kapatmayın. Örneğin UFW kullanan bir sistemde:
sudo ufw allow 2222/tcp
sudo ufw status
Şifre Yerine SSH Key ile Giriş
SSH nasıl bağlanılır rehberlerinin en önemli bölümü anahtar tabanlı giriştir. SSH key, birbiriyle eşleşen iki parçadan oluşur: yerel bilgisayarınızda saklanan özel anahtar ve sunucudaki authorized_keys dosyasına eklenen açık anahtar. Özel anahtar asla sunucuya veya başka kişilere gönderilmemelidir.
Güncel OpenSSH araçlarında Ed25519 anahtarları pratik ve güçlü bir seçenektir. Yeni anahtar oluşturmak için:
ssh-keygen -t ed25519 -C 'sunucu-erisim'
Komut sizden dosya konumu ve passphrase ister. Passphrase, özel anahtar dosyanız ele geçirilse bile saldırganın anahtarı doğrudan kullanmasını zorlaştıran ek bir korumadır. GitHub dokümantasyonu da SSH anahtarlarına passphrase eklemenin ek güvenlik katmanı sağladığını ve anahtarın ssh-agent ile güvenli biçimde önbelleğe alınabileceğini belirtir.
Açık anahtarı sunucuya eklemek için Linux ve macOS’ta ssh-copy-id kullanılabilir:
ssh-copy-id -p 2222 [email protected]
ssh-copy-id yoksa açık anahtarı elle kopyalayabilirsiniz. Yerel bilgisayarda açık anahtarı görüntüleyin:
cat ~/.ssh/id_ed25519.pub
Sunucuda ilgili kullanıcının ev dizininde şu adımları uygulayın:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Açık anahtarı authorized_keys dosyasına tek satır halinde ekleyin. Ardından yeni bağlantıyı test edin:
ssh -i ~/.ssh/id_ed25519 -p 2222 [email protected]
Bağlantı anahtarla çalışıyorsa parola girişini kapatmayı düşünebilirsiniz. Ancak bunu yapmadan önce yedek bir yönetici kullanıcısı ve alternatif erişim yöntemi bulunduğundan emin olun.
Sık Görülen SSH Bağlantı Hataları
SSH nasıl bağlanılır sorusunun yanında en çok karşılaşılan konu hata çözümüdür. SSH hata mesajları genellikle sorunun hangi katmanda olduğunu açıkça gösterir: ağ, port, kullanıcı, kimlik doğrulama veya izinler.
| Hata | Olası neden | Çözüm |
|---|---|---|
Connection timed out |
IP yanlış, sunucu kapalı, port güvenlik duvarında kapalı. | IP adresini, sunucu durumunu ve güvenlik duvarı kurallarını kontrol edin. |
Connection refused |
Sunucuda SSH servisi çalışmıyor veya farklı port dinliyor. | Doğru portu kullanın, konsol erişimi varsa SSH servisini kontrol edin. |
Permission denied |
Yanlış kullanıcı, yanlış parola, hatalı anahtar veya kapalı kimlik doğrulama yöntemi. | Kullanıcı adını, anahtar dosyasını ve authorized_keys içeriğini doğrulayın. |
Host key verification failed |
Sunucunun host key bilgisi değişmiş olabilir. | Değişikliğin meşru olduğundan emin olun, sonra eski kaydı temizleyin. |
Too many authentication failures |
İstemci çok fazla anahtar deniyor. | Doğru anahtarı -i ile belirtin veya IdentitiesOnly yes kullanın. |
Daha ayrıntılı çıktı almak için -v parametresi yararlıdır. Gerekirse seviyeyi artırabilirsiniz:
ssh -vvv -p 2222 [email protected]
Host key değişikliği beklenen bir durumsa, örneğin sunucu yeniden kurulmuşsa, yerel kaydı şu komutla temizleyebilirsiniz:
ssh-keygen -R 203.0.113.10
Bu komutu yalnızca değişikliğin beklenen ve güvenli olduğundan eminseniz çalıştırın. Aksi halde ortadaki adam saldırısı riskini göz ardı etmiş olursunuz.
Sunucuda SSH Kullanırken Güvenlik İpuçları
SSH bağlantısını çalıştırmak yeterli değildir, güvenli tutmak da gerekir. Özellikle internetten erişilebilen sunucularda zayıf parola, açık root girişi ve güncellenmemiş paketler ciddi risk oluşturur.
- Root ile doğrudan giriş yapmayın: Normal bir kullanıcı oluşturup gerekli işlemlerde
sudokullanın. - Anahtar tabanlı giriş kullanın: Parola denemelerine karşı daha dayanıklı bir yapı kurarsınız.
- Özel anahtarı koruyun: Anahtarı e-posta ile göndermeyin, ortak klasörlerde saklamayın, passphrase kullanın.
- Güncellemeleri aksatmayın: OpenSSH ve işletim sistemi paketlerini güvenlik yamalarıyla güncel tutun.
- Erişimi sınırlayın: Mümkünse yalnızca belirli IP adreslerinden SSH erişimine izin verin.
- Logları izleyin:
/var/log/auth.logveya dağıtıma göre ilgili güvenlik günlüklerini inceleyin. - Yedek erişim planı yapın: Yanlış güvenlik duvarı veya SSH ayarı sizi sunucudan kilitleyebilir.
Yerel makinenizde birden fazla sunucuya bağlanıyorsanız ~/.ssh/config dosyası işleri kolaylaştırır. Örneğin:
Host web-sunucum
HostName 203.0.113.10
User kullanici
Port 2222
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
Bundan sonra uzun komut yazmak yerine şu yeterlidir:
ssh web-sunucum
Bu yapı hem hata ihtimalini azaltır hem de farklı anahtarlar kullanan sistemleri düzenli yönetmenizi sağlar. Birden fazla ekip üyesi sunucuya erişiyorsa herkes için ayrı kullanıcı ve ayrı SSH anahtarı tanımlayın. Aynı hesabı paylaşmak denetimi zorlaştırır.
Kısa Kontrol Listesi
SSH nasıl bağlanılır konusunu güvenli biçimde uygulamak için önce IP, kullanıcı adı, port ve kimlik doğrulama yöntemini doğrulayın. Ardından işletim sisteminizdeki terminalden temel bağlantıyı test edin, mümkünse SSH key oluşturup açık anahtarı sunucuya ekleyin. Port, root girişi ve parola ayarlarını değiştirirken mevcut oturumu kapatmadan yeni oturumla test yapın.
Daha derin inceleme için OpenSSH manuel sayfalarını, Windows tarafında Microsoft OpenSSH belgelerini, passphrase ve agent kullanımı için GitHub SSH passphrase rehberini inceleyebilirsiniz. Temel komutları öğrendikten sonra SSH, sunucu yönetiminde en hızlı ve esnek araçlardan biri haline gelir.
Sıkça Sorulan Sorular
SSH bağlantısı için mutlaka root kullanıcısı gerekir mi?
SSH portunu değiştirmek sunucuyu tamamen güvenli yapar mı?
SSH key dosyamı başka bilgisayara kopyalayabilir miyim?
Permission denied hatası neden olur?
Windows’ta SSH için ek program kurmak zorunda mıyım?
Yazar
Sistem Yöneticisi
Onur Kaya, Bulutova'da sistem yöneticisi olarak sunucu altyapısının, sanallaştırma platformunun ve hosting hizmetlerinin kurulumundan ve işletilmesinden sorumludur. VDS ve VPS sunucular, Linux ve Windows Server yönetimi, DNS, kurumsal e-posta altyapısı ve web sitesi güvenliği konularında günlük operasyonda karşılaşılan sorunlarla doğrudan ilgilenir. Blogda bu deneyimden yola çıkarak teknik konuları herkesin uygulayabileceği, adım adım rehberlere dönüştürür.
Tüm yazıları