SSH Nedir? Sunucuya SSH ile Nasıl Bağlanılır?
SSH Nedir? Sunucuya SSH ile Nasıl Bağlanılır?
Bir sunucu kiraladığınızda size teslim edilen ilk bilgiler genellikle bir IP adresi, bir kullanıcı adı ve bir şifredir. Hosting paketlerinde her şeyi bir kontrol paneli üzerinden yönetebilirsiniz; ancak kendi sanal sunucunuza sahip olduğunuzda işin merkezine tek bir araç yerleşir: SSH. Yazılım kurmak, güncelleme yapmak, dosya taşımak, servisleri yeniden başlatmak, log incelemek ve güvenlik ayarlarını yapılandırmak için sunucuyla konuştuğunuz kanal SSH'tır.
Bu rehberde SSH'ın ne olduğunu, arka planda nasıl çalıştığını, Windows, macOS ve Linux bilgisayarlardan sunucuya nasıl bağlanacağınızı, şifre yerine SSH anahtarıyla nasıl daha güvenli oturum açacağınızı ve bağlantı sırasında karşılaşabileceğiniz yaygın hataların çözümlerini adım adım anlatıyoruz. Yazının sonunda, sunucunuzu ilk günden sağlam bir güvenlik temeline oturtmanız için kullanabileceğiniz bir kontrol listesi de bulacaksınız.
SSH Nedir?
SSH (Secure Shell), iki bilgisayar arasında güvenli, şifrelenmiş bir bağlantı kurmayı sağlayan bir ağ protokolüdür. En yaygın kullanım amacı, uzaktaki bir sunucunun komut satırına sanki o makinenin başındaymış gibi erişmektir. Bağlantı boyunca gönderdiğiniz her komut, girdiğiniz her şifre ve sunucudan dönen her çıktı şifrelenir; bu sayede aradaki ağı dinleyen biri trafiği okuyamaz.
SSH, 1995 yılında o dönemin yaygın uzak erişim araçları olan Telnet, rlogin ve rsh'ın güvenlik açıklarına yanıt olarak geliştirildi. Bu eski protokoller kullanıcı adı ve şifreleri ağ üzerinde düz metin olarak taşıyordu. Günümüzde kullanılan sürüm SSH-2'dir ve neredeyse tüm Linux dağıtımlarında, macOS'ta ve güncel Windows sürümlerinde yerleşik olarak gelen OpenSSH yazılımı bu protokolün en yaygın uygulamasıdır.
SSH Ne İşe Yarar?
SSH'ı yalnızca "uzaktan komut çalıştırma aracı" olarak görmek eksik olur. Günlük sunucu yönetiminde şu işler için kullanılır:
- Uzak komut satırı erişimi: Sunucuda paket kurma, güncelleme, yapılandırma dosyası düzenleme ve servis yönetimi.
- Güvenli dosya aktarımı: SSH altyapısını kullanan SCP ve SFTP ile bilgisayarınız ve sunucu arasında şifreli dosya transferi.
- Port yönlendirme (tünelleme): Sunucuda yalnızca yerel olarak dinleyen bir servise (örneğin bir veritabanına) güvenli bir tünel üzerinden erişim.
- Otomasyon: Yedekleme betikleri, dağıtım (deployment) süreçleri ve Git gibi araçların sunucularla şifre sormadan güvenli iletişimi.
- Birden fazla sunucunun yönetimi: Tek bir bilgisayardan onlarca sunucuya anahtar tabanlı erişim.
Özellikle Linux sunucu kiralama seçeneklerinden birini tercih ettiyseniz, sunucunuzla etkileşiminizin büyük kısmı SSH üzerinden olacaktır.
SSH Nasıl Çalışır?
SSH istemci-sunucu modeliyle çalışır. Sizin bilgisayarınızda bir SSH istemcisi (client), uzaktaki makinede ise bağlantıları dinleyen bir SSH sunucu servisi (sshd) bulunur. Varsayılan olarak sshd, 22 numaralı TCP portunu dinler.
Bir bağlantı kurulduğunda arka planda kabaca şu adımlar gerçekleşir:
- Bağlantı başlatılır: İstemci, sunucunun IP adresine ve SSH portuna bağlanır. İki taraf desteklediği protokol sürümlerini ve şifreleme algoritmalarını karşılaştırır.
- Anahtar değişimi yapılır: Taraflar, açık anahtarlı kriptografi yöntemleriyle (örneğin Diffie-Hellman türevleri) ağ üzerinden hiçbir gizli bilgi göndermeden ortak bir oturum anahtarı üretir. Bu anahtar, oturumun geri kalanındaki tüm trafiği simetrik şifrelemeyle korur.
- Sunucunun kimliği doğrulanır: Sunucu, kendi "host key" anahtarıyla kimliğini kanıtlar. İlk bağlantıda istemciniz size bu anahtarın parmak izini gösterir ve kaydetmek isteyip istemediğinizi sorar. Sonraki bağlantılarda anahtar değişmişse sizi uyarır; bu mekanizma araya giren sahte sunuculara karşı koruma sağlar.
- Kullanıcı kimliği doğrulanır: Şifre veya SSH anahtarı ile sunucuya kim olduğunuzu kanıtlarsınız.
- Oturum açılır: Doğrulama başarılıysa size bir kabuk (shell) açılır ve komut çalıştırmaya başlayabilirsiniz.
Simetrik ve Asimetrik Şifrelemenin Rolü
SSH iki farklı şifreleme yaklaşımını birlikte kullanır. Asimetrik şifreleme (açık/özel anahtar çifti) kimlik doğrulama ve güvenli anahtar değişimi için kullanılır. Oturum anahtarı oluşturulduktan sonra ise trafik, çok daha hızlı çalışan simetrik şifreleme algoritmalarıyla (AES veya ChaCha20 gibi) korunur. Bu hibrit yapı hem güvenliği hem de performansı bir arada sunar.
SSH ile Diğer Uzak Erişim Yöntemlerinin Karşılaştırması
| Özellik | SSH | Telnet | RDP |
|---|---|---|---|
| Şifreleme | Uçtan uca şifreli | Yok, düz metin | Şifreli |
| Varsayılan port | 22 | 23 | 3389 |
| Arayüz türü | Komut satırı | Komut satırı | Grafik masaüstü |
| Tipik kullanım | Linux sunucu yönetimi | Eski ağ cihazları, test | Windows sunucu yönetimi |
| Anahtar tabanlı giriş | Var | Yok | Yok (sertifika tabanlı seçenekler ayrı) |
| Dosya aktarımı | SCP / SFTP ile | Yok | Pano ve sürücü yönlendirme |
| Kaynak tüketimi | Çok düşük | Çok düşük | Görece yüksek |
| Günümüzde önerilir mi? | Evet | Hayır | Windows ortamı için evet |
Windows tabanlı sunucularda grafik arayüzle çalışmak istiyorsanız RDP daha doğal bir seçimdir; bu konuyu RDP sunucu ve uzak masaüstü bağlantısı rehberimizde ayrıntılı olarak ele aldık. Linux sunucular içinse SSH tartışmasız standarttır.
SSH Bağlantısı İçin Neler Gerekir?
Bağlantı kurmadan önce elinizde şu bilgilerin hazır olması gerekir:
- Sunucu IP adresi veya alan adı: Örneğin 185.x.x.x veya sunucu.alanadiniz.com.
- Kullanıcı adı: Yeni kurulan Linux sunucularda genellikle root; bazı dağıtım imajlarında ubuntu, almalinux gibi özel kullanıcılar olabilir.
- Kimlik doğrulama bilgisi: Şifre veya daha önce sunucuya tanımlanmış bir SSH anahtarı.
- SSH portu: Değiştirilmediyse 22.
- Bir SSH istemcisi: İşletim sisteminizde yerleşik terminal ya da ayrı bir istemci yazılımı.
Bu bilgiler, VPS sunucu veya VDS siparişiniz aktifleştiğinde size iletilen karşılama e-postasında ve müşteri panelinizde yer alır.
Sunucuya SSH ile Nasıl Bağlanılır? (İşletim Sistemine Göre)
Linux ve macOS'tan SSH Bağlantısı
Linux ve macOS'ta OpenSSH istemcisi hazır gelir; ek bir kuruluma gerek yoktur. Terminal uygulamasını açın ve şu komutu yazın:
ssh root@SUNUCU_IP_ADRESI
SSH portu 22 dışında bir değere ayarlandıysa -p parametresiyle belirtilir:
ssh -p 2222 root@SUNUCU_IP_ADRESI
İlk bağlantıda aşağıdakine benzer bir uyarı görürsünüz:
The authenticity of host '185.x.x.x' can't be established. ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Bu mesaj bir hata değildir. İstemciniz bu sunucuyu ilk kez gördüğü için kimliğini onaylamanızı ister. yes yazıp Enter'a bastığınızda sunucunun anahtarı ~/.ssh/known_hosts dosyasına kaydedilir. Ardından şifreniz istenir. Şifre yazarken ekranda karakter görünmemesi normaldir; güvenlik amacıyla gizlenir. Doğru şifreyi girdikten sonra sunucunun komut satırına ulaşırsınız.
Windows'tan SSH Bağlantısı (PowerShell / Komut İstemi)
Windows 10'un güncel sürümleri ve Windows 11'de OpenSSH istemcisi yerleşik olarak bulunur. PowerShell'i veya Komut İstemi'ni açıp Linux'taki komutun aynısını kullanabilirsiniz:
ssh root@SUNUCU_IP_ADRESI
Komut tanınmazsa, Ayarlar > Sistem > İsteğe bağlı özellikler bölümünden "OpenSSH İstemcisi" özelliğini ekleyebilirsiniz. Windows Terminal uygulaması, birden fazla sekme ve daha rahat bir kullanım sunduğu için sık SSH kullananlar için iyi bir tercihtir.
Windows'tan PuTTY ile SSH Bağlantısı
Grafik arayüzlü bir istemci tercih edenler için PuTTY hâlâ en bilinen seçeneklerden biridir. Kullanımı şöyledir:
- PuTTY'yi resmi kaynağından indirip kurun.
- Host Name (or IP address) alanına sunucu IP adresinizi yazın.
- Port alanına 22 (veya değiştirdiğiniz portu) girin, bağlantı tipini SSH olarak bırakın.
- İsterseniz Saved Sessions alanına bir isim yazıp Save ile bağlantıyı kaydedin.
- Open butonuna tıklayın, ilk bağlantıdaki host key uyarısını onaylayın.
- "login as" satırına kullanıcı adınızı, ardından şifrenizi girin.
PuTTY'de SSH anahtarı kullanmak için anahtarın PuTTYgen aracıyla .ppk formatına dönüştürülmesi ve Connection > SSH > Auth > Credentials bölümünden seçilmesi gerekir.
Mobil Cihazlardan SSH Bağlantısı
Acil bir müdahale gerektiğinde telefonunuzdan da sunucunuza bağlanabilirsiniz. Android ve iOS için Termius, JuiceSSH (Android) gibi uygulamalar, IP, port, kullanıcı adı ve şifre ya da anahtar bilgisiyle bağlantı kurmanıza olanak tanır. Mobil cihazlarda da anahtar tabanlı giriş kullanmanızı ve uygulamayı ekran kilidiyle korumanızı öneririz.
SSH İstemcilerinin Karşılaştırması
| İstemci | Platform | Arayüz | Öne çıkan özellik | Kimler için uygun |
|---|---|---|---|---|
| OpenSSH (terminal) | Linux, macOS, Windows | Komut satırı | Ek kurulum gerektirmez, betiklerle uyumlu | Herkes, özellikle teknik kullanıcılar |
| PuTTY | Windows (öncelikli) | Grafik + terminal | Kayıtlı oturumlar, hafif yapı | Klasik Windows kullanıcıları |
| MobaXterm | Windows | Grafik + terminal | Dahili SFTP tarayıcı, sekmeli yapı | Birden fazla sunucu yöneten kullanıcılar |
| Termius | Windows, macOS, Linux, mobil | Grafik + terminal | Cihazlar arası senkronizasyon | Masaüstü ve mobili birlikte kullananlar |
| Windows Terminal | Windows | Terminal | Sekmeler, profil yönetimi | OpenSSH'ı Windows'ta rahat kullanmak isteyenler |
SSH Anahtarı (SSH Key) ile Şifresiz ve Güvenli Bağlantı
Şifreyle giriş yapmak kolaydır ama internete açık her sunucu, günün her saatinde otomatik botlar tarafından şifre deneme saldırılarına (brute force) maruz kalır. Sunucunuzun /var/log/secure veya /var/log/auth.log dosyasına baktığınızda, kurulumdan birkaç saat sonra bile yüzlerce başarısız giriş denemesi görmeniz sıradandır. Bu riski büyük ölçüde ortadan kaldırmanın yolu SSH anahtarı kullanmaktır.
SSH Anahtarı Nasıl Çalışır?
SSH anahtarı, birbirine matematiksel olarak bağlı iki dosyadan oluşur:
- Özel anahtar (private key): Bilgisayarınızda kalır, kimseyle paylaşılmaz. Bir kapının anahtarı gibi düşünebilirsiniz.
- Açık anahtar (public key): Sunucuya yüklenir. Kilidin kendisidir; herkes görebilir, ama yalnızca eşleşen özel anahtar onu açabilir.
Bağlanırken sunucu, sizden özel anahtarınıza sahip olduğunuzu kanıtlamanızı ister. Özel anahtarınız ağ üzerinden hiçbir zaman gönderilmez; yalnızca onunla üretilen kriptografik bir imza iletilir.
Adım 1: SSH Anahtar Çifti Oluşturma
Linux, macOS veya Windows PowerShell'de aynı komut çalışır:
ssh-keygen -t ed25519 -C "[email protected]"
Ed25519 günümüzde önerilen, hem güvenli hem hızlı bir algoritmadır. Çok eski sistemlerle uyumluluk gerekiyorsa RSA tercih edilebilir:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Komut size anahtarın kaydedileceği konumu sorar; varsayılanı kabul etmek için Enter'a basabilirsiniz. Ardından bir parola (passphrase) belirlemeniz istenir. Parola zorunlu değildir, ancak özel anahtar dosyanız bir gün çalınırsa ikinci bir koruma katmanı sağladığı için kesinlikle önerilir.
İşlem sonunda ~/.ssh/ klasöründe iki dosya oluşur: id_ed25519 (özel anahtar) ve id_ed25519.pub (açık anahtar).
Adım 2: Açık Anahtarı Sunucuya Yükleme
Linux ve macOS'ta en pratik yöntem ssh-copy-id komutudur:
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@SUNUCU_IP_ADRESI
Windows'ta ssh-copy-id bulunmadığı için PowerShell'de şu komutu kullanabilirsiniz:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@SUNUCU_IP_ADRESI "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Bu komut açık anahtarınızı sunucudaki ~/.ssh/authorized_keys dosyasına ekler ve dosya izinlerini doğru şekilde ayarlar. İzinlerin yanlış olması, anahtarlı girişin çalışmamasının en yaygın sebeplerinden biridir: .ssh klasörü 700, authorized_keys dosyası 600 izinli olmalıdır.
Adım 3: Anahtarla Bağlantıyı Test Etme
ssh root@SUNUCU_IP_ADRESI
Her şey doğru yapıldıysa sunucu şifre sormadan (anahtarınıza parola koyduysanız yalnızca o parolayı sorarak) oturum açacaktır.
Şifre ile Giriş ve Anahtar ile Giriş Karşılaştırması
| Kriter | Şifre ile giriş | SSH anahtarı ile giriş |
|---|---|---|
| Kurulum kolaylığı | Çok kolay | Birkaç dakikalık ilk kurulum gerekir |
| Brute force saldırılarına dayanıklılık | Şifrenin gücüne bağlı, risklidir | Pratikte tahmin edilemez |
| Günlük kullanım | Her girişte şifre yazılır | Hızlı, otomatik giriş |
| Otomasyon ve betikler | Uygun değil | Çok uygun |
| Kimlik bilgisinin ağda iletilmesi | Şifre şifreli kanalda iletilir | Özel anahtar hiç iletilmez |
| Kaybolma/çalınma riski | Şifre tahmin edilebilir veya sızabilir | Dosya çalınabilir, parola ile korunmalıdır |
| Önerilen kullanım | Yalnızca ilk kurulum aşaması | Kalıcı yönetim yöntemi |
SSH Yapılandırma Dosyası ile Bağlantıları Kolaylaştırma
Birden fazla sunucu yönetiyorsanız her seferinde IP, port ve kullanıcı adı yazmak zahmetli hâle gelir. İstemci tarafındaki ~/.ssh/config dosyası bu işi basitleştirir:
Host websunucu HostName 185.x.x.x User admin Port 2222 IdentityFile ~/.ssh/id_ed25519 Host yedeksunucu HostName 185.y.y.y User root IdentityFile ~/.ssh/id_ed25519_yedek
Artık bağlanmak için yalnızca şunu yazmanız yeterlidir:
ssh websunucu
Bu tanımlar SCP, SFTP ve rsync gibi SSH tabanlı araçlarda da geçerli olur.
Sık Kullanılan SSH Komutları
Sunucuya bağlandıktan sonra ilk günlerde en çok ihtiyaç duyacağınız temel komutlar şunlardır:
| Komut | Ne işe yarar? |
|---|---|
| pwd | Bulunduğunuz dizini gösterir |
| ls -la | Dizindeki dosyaları gizli dosyalar ve izinlerle birlikte listeler |
| cd /var/www | Belirtilen dizine geçer |
| nano dosya.conf | Dosyayı basit bir metin düzenleyicide açar |
| df -h | Disk kullanımını okunabilir biçimde gösterir |
| free -h | RAM kullanımını gösterir |
| top veya htop | Çalışan süreçleri ve kaynak tüketimini canlı izler |
| systemctl status nginx | Bir servisin durumunu gösterir |
| systemctl restart nginx | Bir servisi yeniden başlatır |
| tail -f /var/log/messages | Log dosyasını canlı olarak takip eder |
| exit | SSH oturumunu kapatır |
SSH ile Dosya Aktarımı: SCP ve SFTP
SSH yalnızca komut satırı için değil, güvenli dosya transferi için de kullanılır. Bilgisayarınızdan sunucuya dosya göndermek için:
scp yedek.zip root@SUNUCU_IP_ADRESI:/root/
Sunucudan bilgisayarınıza dosya indirmek için:
scp root@SUNUCU_IP_ADRESI:/var/log/nginx/error.log ./
Klasör aktarımı için -r, farklı port için büyük harfle -P parametresi kullanılır. Grafik arayüz tercih ediyorsanız FileZilla veya WinSCP gibi istemcilerde bağlantı türünü SFTP seçip aynı SSH bilgilerinizle giriş yapabilirsiniz. SFTP, klasik FTP'nin aksine tüm aktarımı şifreli yaptığı için çok daha güvenlidir.
SSH Güvenliği: Sunucunuzu Korumak İçin Yapmanız Gerekenler
SSH'ın kendisi güvenli bir protokoldür; ancak yapılandırması varsayılan hâliyle bırakılan bir sunucu, gereksiz risk taşır. Aşağıdaki ayarların tamamı sunucu tarafındaki /etc/ssh/sshd_config dosyası üzerinden yapılır.
Önemli uyarı: SSH ayarlarını değiştirirken mevcut oturumunuzu kesinlikle kapatmayın. Değişikliği uyguladıktan sonra yeni bir terminal penceresinden bağlanmayı test edin. Yeni bağlantı başarılı olmadan eski oturumu kapatırsanız sunucunuza erişiminizi kaybedebilirsiniz. Böyle bir durumda sağlayıcınızın sunduğu VNC/konsol erişimi kurtarıcı olacaktır.
Root ile Doğrudan Girişi Kısıtlayın
Önce yetkili yeni bir kullanıcı oluşturun. AlmaLinux ve Rocky Linux gibi RHEL tabanlı sistemlerde:
adduser admin passwd admin usermod -aG wheel admin
Ubuntu ve Debian'da wheel yerine sudo grubu kullanılır. Ardından açık anahtarınızı bu kullanıcının ~/.ssh/authorized_keys dosyasına da ekleyin. Yeni kullanıcıyla bağlanabildiğinizi doğruladıktan sonra sshd_config içinde şu satırı düzenleyin:
PermitRootLogin no
Root girişini tamamen kapatmak yerine yalnızca anahtarla izin vermek isterseniz PermitRootLogin prohibit-password değerini kullanabilirsiniz.
Şifreli Girişi Kapatın
Anahtarlı giriş sorunsuz çalıştıktan sonra şifreyle girişi devre dışı bırakmak, brute force saldırılarını etkisiz hâle getirir:
PasswordAuthentication no
Bazı dağıtımlarda /etc/ssh/sshd_config.d/ klasöründeki ek yapılandırma dosyaları bu ayarı ezebilir; değişiklik etkili olmuyorsa bu klasörü de kontrol edin.
SSH Portunu Değiştirin
Port değiştirmek tek başına bir güvenlik önlemi değildir, ancak otomatik botların oluşturduğu log gürültüsünü ciddi ölçüde azaltır:
Port 2222
Portu değiştirdiğinizde güvenlik duvarında yeni portu açmayı unutmayın. AlmaLinux/Rocky Linux'ta firewalld ve SELinux için:
firewall-cmd --permanent --add-port=2222/tcp firewall-cmd --reload semanage port -a -t ssh_port_t -p tcp 2222
Ubuntu'da UFW kullanıyorsanız:
ufw allow 2222/tcp
Güvenlik duvarı kavramına yabancıysanız firewall nedir yazımız, bu adımın mantığını anlamanıza yardımcı olacaktır.
Değişiklikleri Uygulayın
Yapılandırmayı kaydetmeden önce söz dizimi hatası olup olmadığını kontrol edin:
sshd -t
Komut hiçbir çıktı vermiyorsa yapılandırma geçerlidir. Ardından servisi yeniden başlatın:
systemctl restart sshd
Ubuntu ve Debian'da servis adı ssh'tır. Ubuntu'nun yeni sürümlerinde SSH, socket aktivasyonuyla çalışabilir; bu durumda port değişikliğinin geçerli olması için systemctl daemon-reload ve systemctl restart ssh.socket komutları gerekebilir.
Fail2ban ile Tekrarlanan Denemeleri Engelleyin
Fail2ban, log dosyalarını izleyerek belirli sayıda başarısız giriş denemesi yapan IP adreslerini otomatik olarak geçici süreyle engeller. Kurulumu birkaç komutla yapılır ve SSH için hazır bir koruma kuralıyla birlikte gelir. Şifreli girişi kapatmış olsanız bile ek bir savunma katmanı olarak önerilir.
Sunucu güvenliğinin SSH dışındaki boyutları için sanal sunucu güvenliği için 10 adım rehberimize mutlaka göz atın.
SSH Güvenlik Kontrol Listesi
- SSH anahtar çifti oluşturuldu ve özel anahtar parola ile korundu
- Açık anahtar sunucuya eklendi, anahtarlı giriş test edildi
- Sudo yetkili ayrı bir kullanıcı oluşturuldu
- PermitRootLogin kısıtlandı
- PasswordAuthentication no ayarlandı
- SSH portu değiştirildi ve güvenlik duvarında izin verildi
- sshd -t ile yapılandırma doğrulandı
- Yeni oturumdan bağlantı test edildikten sonra eski oturum kapatıldı
- Fail2ban kuruldu ve etkinleştirildi
- Sistem paketleri güncel tutuluyor
- Özel anahtarın güvenli bir yedeği alındı
Sık Karşılaşılan SSH Hataları ve Çözümleri
"Connection refused" Hatası
Sunucu bağlantınızı aktif olarak reddediyor demektir. En yaygın sebepler: SSH servisi çalışmıyordur, yanlış porta bağlanıyorsunuzdur ya da port değiştirildiği hâlde eski port kullanılıyordur. Konsol erişimiyle sunucuya girip systemctl status sshd komutuyla servisi kontrol edin ve ss -tlnp | grep ssh ile hangi portu dinlediğini görün.
"Connection timed out" Hatası
İstek sunucuya hiç ulaşmıyor ya da yanıt dönmüyor demektir. Sunucu kapalı olabilir, IP adresi yanlış olabilir veya bir güvenlik duvarı (sunucu üzerinde, ağ tarafında ya da kendi ağınızda) portu engelliyor olabilir. Özellikle port değiştirip güvenlik duvarında yeni portu açmayı unuttuysanız bu hatayı alırsınız.
"Permission denied (publickey)" Hatası
Sunucu şifreli girişe izin vermiyor ve sunduğunuz anahtarı kabul etmiyor demektir. Kontrol etmeniz gerekenler:
- Doğru kullanıcı adıyla mı bağlanıyorsunuz?
- Açık anahtar, o kullanıcının authorized_keys dosyasında mı?
- .ssh klasörü 700, authorized_keys 600 izinli mi ve dosyaların sahibi o kullanıcı mı?
- İstemci doğru özel anahtarı kullanıyor mu? Emin değilseniz ssh -i ~/.ssh/id_ed25519 kullanici@ip ile anahtarı açıkça belirtin.
Neyin yanlış gittiğini görmek için bağlantıyı ayrıntılı modda başlatabilirsiniz: ssh -v kullanici@ip.
"REMOTE HOST IDENTIFICATION HAS CHANGED" Uyarısı
Bağlandığınız IP adresindeki sunucunun anahtarı, known_hosts dosyanızdaki kayıtla eşleşmiyor demektir. Sunucunuzu yeniden kurduysanız bu beklenen bir durumdur ve eski kaydı silerek çözülür:
ssh-keygen -R SUNUCU_IP_ADRESI
Ancak sunucuda hiçbir değişiklik yapmadıysanız bu uyarıyı ciddiye alın; araya giren bir saldırının işareti olabilir. Bu durumda bağlanmadan önce sağlayıcınızla iletişime geçin.
Oturumun Sık Sık Kopması
Bir süre işlem yapılmadığında oturum kapanıyorsa, istemci tarafındaki ~/.ssh/config dosyasına şu satırları ekleyerek bağlantıyı canlı tutabilirsiniz:
Host * ServerAliveInterval 60 ServerAliveCountMax 3
Uzun süren işlemlerde (büyük bir yedeğin açılması, derleme gibi) bağlantı koparsa işlemin de yarıda kalmaması için tmux veya screen gibi oturum yöneticilerini kullanmanız önerilir.
Windows Sunucularda SSH Kullanılabilir mi?
Evet. Windows Server'ın güncel sürümlerinde OpenSSH Server bileşeni isteğe bağlı özellik olarak kurulabilir ve PowerShell komutlarını SSH üzerinden uzaktan çalıştırmanıza olanak tanır. Yine de Windows sunucu yönetiminin büyük bölümü grafik arayüz gerektirdiği için RDP bu ortamda birincil araç olmaya devam eder. Hangi işletim sisteminin projenize uygun olduğundan emin değilseniz Linux sunucu mu Windows sunucu mu karşılaştırmamız karar vermenizi kolaylaştıracaktır. Grafik arayüzlü bir çalışma ortamı arıyorsanız Windows VDS sunucu seçenekleri ihtiyacınızı karşılar.
Hosting Paketlerinde SSH Erişimi Var mı?
Paylaşımlı hosting ile sanal sunucu arasındaki en belirgin farklardan biri SSH erişiminin kapsamıdır. Paylaşımlı hosting paketlerinde, pakete ve yapılandırmaya bağlı olarak kısıtlı bir SSH erişimi (jailed shell) sunulabilir; bu erişimle kendi dosyalarınız üzerinde Git, Composer veya WP-CLI gibi araçları çalıştırabilirsiniz, ancak sistem genelinde paket kuramaz veya servis yönetemezsiniz. cPanel hosting paketlerinde SSH erişimi ve anahtar yönetimi, panel üzerinden yönetilebilir.
Tam root yetkisiyle SSH erişimi, yani sunucunun tamamı üzerinde söz sahibi olmak istiyorsanız sanal sunucu veya fiziksel sunucu tercih etmeniz gerekir.
SSH ile Tam Kontrol İçin TuemCloud Sunucuları
SSH'ın sunduğu esnekliği en iyi şekilde kullanabilmek için sunucunuzun altyapısı da o esnekliği taşıyabilmelidir. TuemCloud'un VDS sunucu kiralama seçeneklerinde size tam root yetkili SSH erişimi sunulur; istediğiniz Linux dağıtımını kurabilir, sunucunuzu tamamen kendi ihtiyaçlarınıza göre yapılandırabilirsiniz.
Altyapımızın öne çıkan avantajları şunlardır:
- NVMe SSD depolama: Paket kurulumu, güncelleme, yedek açma ve log tarama gibi SSH üzerinden yaptığınız disk yoğun işlemler belirgin şekilde hızlı tamamlanır. Performansı önceliğiniz yapıyorsanız NVMe VDS sunucu paketlerimizi inceleyebilirsiniz.
- Türkiye lokasyonu: Sunucularımızın Türkiye'de bulunması, İstanbul'dan veya Türkiye'nin herhangi bir noktasından bağlandığınızda düşük gecikme demektir. Komut yazarken yaşanan o can sıkıcı gecikme hissi ortadan kalkar.
- LiteSpeed desteği: Web projeleriniz için yüksek performanslı web sunucusu altyapısı.
- 7/24 teknik destek: SSH yapılandırması sırasında kendinizi sunucunun dışında bırakmanız gibi durumlarda, konsol erişimi ve uzman ekibimizle kısa sürede yeniden erişim sağlarsınız.
Projeniz büyüdükçe kaynaklarını esnek biçimde artırabileceğiniz bir yapı arıyorsanız bulut sunucu kiralama çözümlerimize, yeni başlıyorsanız ve bütçe dostu bir giriş yapmak istiyorsanız sanal sunucu kiralama seçeneklerimize göz atabilirsiniz. İhtiyacınıza uygun paketi belirleyin, sunucunuz dakikalar içinde hazır olsun ve ilk SSH bağlantınızı bu rehberle güvenle kurun.
Sıkça Sorulan Sorular
SSH ile SSL aynı şey mi?
Hayır. Her ikisi de şifreleme kullanır ancak farklı amaçlara hizmet eder. SSH, bir sunucuya uzaktan güvenli erişim ve yönetim için kullanılan bir protokoldür. SSL/TLS ise web sitesi ile ziyaretçinin tarayıcısı arasındaki trafiği şifreler ve adres çubuğundaki HTTPS'i sağlar.
SSH'ın varsayılan portu nedir, değiştirmek gerekir mi?
Varsayılan SSH portu 22'dir. Değiştirmek zorunlu değildir ve tek başına güçlü bir güvenlik önlemi sayılmaz; ancak otomatik bot saldırılarının büyük bölümü 22. portu hedeflediği için port değişikliği log kirliliğini ve gereksiz yükü azaltır. En etkili koruma, anahtarlı giriş ile şifreli girişin kapatılmasıdır.
SSH anahtarımı kaybedersem ne olur?
Özel anahtarınızı kaybettiyseniz ve şifreli giriş kapalıysa, SSH ile sunucuya bağlanamazsınız. Bu durumda sağlayıcınızın sunduğu konsol (VNC) erişimiyle sunucuya girip yeni bir açık anahtar ekleyebilirsiniz. Bu nedenle özel anahtarınızın güvenli bir yedeğini tutmanız önemlidir.
Aynı SSH anahtarını birden fazla sunucuda kullanabilir miyim?
Evet, aynı açık anahtarı birden fazla sunucunun authorized_keys dosyasına ekleyebilirsiniz. Pratik bir yöntemdir; ancak farklı güvenlik seviyelerine sahip ortamlar (örneğin kişisel projeler ve müşteri sunucuları) için ayrı anahtarlar kullanmak, olası bir sızıntının etkisini sınırlar.
Paylaşımlı hostingde SSH ile her şeyi yapabilir miyim?
Hayır. Paylaşımlı hostingde SSH erişimi sunulsa bile genellikle yalnızca kendi hesabınızın dosyalarıyla sınırlıdır; sistem paketleri kuramaz, servisleri yönetemez veya sunucu yapılandırmasını değiştiremezsiniz. Tam kontrol için root yetkili bir sanal sunucu ya da fiziksel sunucu gerekir.