SSH Bağlantısı Nasıl Kurulur?
Windows, Mac ve Linux’tan sunucuya bağlanma; anahtar tabanlı giriş.
SSH, başka bir bilgisayarın komut satırına şifreli bir bağlantıyla ulaşmanın standart yolu. Bir sunucuyu yönetmek, evdeki bir Raspberry Pi'ye bağlanmak ya da bir hosting hesabında dosya düzenlemek için kullanılıyor.
Sunucu tarafının sorularını — portu değiştirmeli miyim, şifre mi anahtar mı — 22 SSH portu yazısında cevapladık. Bu yazı bağlanan tarafı anlatıyor: hangi komut, ilk bağlantıda çıkan soru ne anlama geliyor, anahtar nasıl üretilip sunucuya konuyor.
Program kurmanız gerekmiyor
Üç işletim sisteminde de SSH istemcisi hazır geliyor:
| Sistem | Nereden | Not |
|---|---|---|
| Windows 10 / 11 | PowerShell ya da Terminal | OpenSSH istemcisi yerleşik; yoksa İsteğe bağlı özellikler bölümünden ekleniyor |
| macOS | Terminal uygulaması | Kurulu geliyor |
| Linux | Herhangi bir terminal | Neredeyse tüm dağıtımlarda kurulu |
Grafik arayüzlü istemciler de var ve işe yarıyor, ama komutu bilmek her ortamda aynı şekilde çalışmanızı sağlıyor.
Temel komut
| Komut | Anlamı |
|---|---|
| ssh kullanici@sunucu.com | Varsayılan port 22 ile bağlanır |
| ssh kullanici@203.0.113.10 | Alan adı yerine IP adresiyle |
| ssh -p 2222 kullanici@sunucu.com | Farklı bir port |
| ssh -i ~/.ssh/anahtarim kullanici@sunucu.com | Belirli bir anahtar dosyasıyla |
| ssh -v kullanici@sunucu.com | Ayrıntılı çıktı; bağlanmıyorsa nerede takıldığını gösterir |
Kullanıcı adı sunucudaki hesabın adı; bilgisayarınızdaki adınız değil. Yazmazsanız SSH yerel kullanıcı adınızı deniyor ve bu yüzden şifre doğru olduğu halde giriş reddedilebiliyor.
İlk bağlantıdaki soru
Bir sunucuya ilk kez bağlandığınızda şuna benzer bir soru çıkıyor: sunucunun kimliği doğrulanamadı, anahtar parmak izi şu, devam etmek istiyor musunuz?
Bu soru önemli. SSH, bağlandığınız sunucunun gerçekten o sunucu olduğunu parmak iziyle doğruluyor. İlk seferde elinizde karşılaştıracak bir şey olmadığı için size soruyor. "yes" dediğiniz parmak izi kaydediliyor ve sonraki her bağlantıda bununla karşılaştırılıyor.
- Sunucuyu siz kurduysanız ya da hosting şirketi panelde parmak izini gösteriyorsa, ekrandakiyle karşılaştırın.
- Karşılaştıracak bir şey yoksa güvenilir bir ağdan bağlanın; halka açık Wi-Fi'da ilk bağlantıyı kurmayın.
Sonradan "REMOTE HOST IDENTIFICATION HAS CHANGED" uyarısı alırsanız iki olasılık var: sunucu yeniden kuruldu ya da araya biri girmeye çalışıyor. İlki çok daha sık, ama ayırt etmeden uyarıyı geçmeyin. Sunucuyu yöneten kişiye sorun; yeniden kurulum doğrulandıysa eski kaydı ssh-keygen -R sunucu.com komutuyla silin. İkinci olasılığın ne olduğunu ortadaki adam saldırısı yazısında anlattık.
Anahtarla giriş: üç adım
Şifreyle giriş çalışıyor ama anahtar hem daha güvenli hem daha pratik: her seferinde şifre yazmıyorsunuz. Anahtar iki dosyadan oluşuyor — özel anahtar bilgisayarınızda kalıyor, genel anahtar sunucuya konuyor.
| Adım | Komut | Ne oluyor |
|---|---|---|
| 1. Üret | ssh-keygen -t ed25519 | Ev dizininizde .ssh/id_ed25519 (özel) ve .ssh/id_ed25519.pub (genel) oluşuyor |
| 2. Kopyala | ssh-copy-id kullanici@sunucu.com | Genel anahtar sunucudaki ~/.ssh/authorized_keys dosyasına ekleniyor (Mac ve Linux) |
| 3. Dene | ssh kullanici@sunucu.com | Şifre sorulmadan giriş yapılıyorsa anahtar çalışıyor |
Üretim sırasında anahtar için bir parola (passphrase) soruluyor. Boş bırakmak mümkün ama önerilmiyor: bilgisayarınız çalınırsa özel anahtar doğrudan kullanılabilir hale geliyor. Parolayı her seferinde yazmamak için işletim sisteminin anahtar zinciri ya da ssh-agent kullanılabiliyor.
Windows'ta ssh-copy-id yok. Genel anahtar dosyasının içeriğini (tek satır) kopyalayıp sunucuda ~/.ssh/authorized_keys dosyasının sonuna ekliyorsunuz. Hosting panellerinin çoğunda bunun için "SSH anahtarları" bölümü var; oraya yapıştırmak yetiyor.
Özel anahtarı hiçbir yere kopyalamayın. E-postayla göndermeyin, sunucuya yüklemeyin. İkinci bir bilgisayardan bağlanacaksanız orada yeni bir anahtar çifti üretip onun genel anahtarını da sunucuya ekleyin.
Kısa ad: config dosyası
Sık bağlandığınız sunucular için her seferinde kullanıcı adı, port ve anahtar yazmak yerine ~/.ssh/config dosyasına bir kayıt ekleyebilirsiniz:
| Satır | Anlamı |
|---|---|
| Host evsunucu | Kullanacağınız kısa ad |
| HostName 203.0.113.10 | Gerçek adres |
| User pi | Sunucudaki kullanıcı adı |
| Port 2222 | Port |
| IdentityFile ~/.ssh/id_ed25519 | Kullanılacak anahtar |
Bundan sonra yalnızca ssh evsunucu yazmak yetiyor.
Bağlanmıyorsa
| Hata | Muhtemel sebep |
|---|---|
| Connection timed out | Adres yanlış, port kapalı ya da araya bir güvenlik duvarı giriyor |
| Connection refused | Sunucuya ulaşıldı ama o portta SSH çalışmıyor |
| Permission denied | Kullanıcı adı, şifre ya da anahtar yanlış; sunucu şifreli girişi kapatmış olabilir |
Portun dışarıdan açık olup olmadığını port kontrol aracıyla sınayabilirsiniz. Evdeki bir cihaza dışarıdan bağlanıyorsanız modemde port yönlendirme de gerekiyor.
Sıkça sorulan sorular
Windows’ta SSH için program kurmam gerekiyor mu?
Hayır. Windows 10 ve 11’de OpenSSH istemcisi yerleşik gelir; PowerShell ya da Terminal’de ssh komutunu doğrudan kullanabilirsiniz.
İlk bağlantıda çıkan parmak izi sorusu nedir?
SSH, bağlandığınız sunucunun gerçekten o sunucu olduğunu parmak iziyle doğrular. İlk seferde karşılaştıracak kayıt olmadığı için size sorar; onayladığınız iz kaydedilir.
Host key changed uyarısı ne demek?
Sunucunun kimliği kayıttakinden farklı. Genelde sunucu yeniden kurulmuştur, ama araya biri girmeye çalışıyor da olabilir. Sunucuyu yönetenle doğrulamadan uyarıyı geçmeyin.
SSH anahtarı nasıl oluşturulur?
ssh-keygen -t ed25519 komutuyla. Ev dizininizde özel ve genel anahtar oluşur. Genel anahtar sunucuya konur, özel anahtar bilgisayarınızda kalır.
Permission denied hatası alıyorum, sebep ne?
Kullanıcı adı, şifre ya da anahtar yanlış olabilir. Kullanıcı adını yazmadıysanız SSH yerel adınızı dener. Sunucu şifreli girişi kapatmış da olabilir.