Datafex LogoDatafex
Tüm rehberler

SSH ile sunucuya bağlanma: ilk adımlar ve parola yerine anahtar

Yazan: Yayın: Güncelleme: 4 dk okuma

Linux sunucu aldığınızda elinize üç şey geçer: IP adresi, kullanıcı adı (genelde root) ve parola. Bu rehber ilk bağlantıdan başlayıp parolayı tamamen devre dışı bırakmaya kadar gider.

Anlatılan adımlar dağıtımdan bağımsız çalışır: Ubuntu kurulu bir VDS'te de Debian veya RHEL ailesinde de aynıdır. Farklı olan tek yer servis adıdır ve o da aşağıda ayrıca belirtildi.

İlk bağlantı

Windows 10/11, macOS ve Linux'ta SSH istemcisi zaten kuruludur — ek program gerekmez:

ssh [email protected]

İlk bağlantıda parmak izi doğrulaması istenir (fingerprint). yes yazdığınızda bu parmak izi ~/.ssh/known_hosts dosyasına kaydedilir ve sonraki bağlantılarda sessizce doğrulanır.

Sonraki bağlantılarda parmak izi uyarısı gelirse durun. Bu ya sunucu yeniden kurulmuştur ya da bağlantınız araya girilmiştir. Sebebini bilmiyorsanız bağlanmayın.

Sunucuyu gerçekten siz yeniden kurduysanız eski kaydı silmek yeterlidir; known_hosts dosyasını elle düzenlemeye gerek yok:

ssh-keygen -R 185.137.98.29

Bağlantı hiç kurulmuyorsa tahmin yürütmek yerine ayrıntılı çıktı isteyin:

ssh -v [email protected]

Çıktı, sorunun hangi aşamada olduğunu doğrudan söyler. Connection timed out ağ veya güvenlik duvarı, Connection refused sunucuda dinleyen bir SSH servisi olmaması, Permission denied (publickey) ise servisin çalıştığı ama sizin kimlik doğrulamanızın kabul edilmediği anlamına gelir. Üçü tamamen farklı yerlerde çözülür; ilk ikisi sağlayıcı panelindeki konsoldan, üçüncüsü aşağıdaki adımlardan.

Port farklıysa

ssh -p 2222 [email protected]

Portu daha sonra kendiniz değiştirdiyseniz, sunucuda etkin değerin gerçekten ne olduğunu tahmin etmeyin; sshd size söyler:

sshd -T | grep -i "^port"

Port değiştirmek güvenlik sağlamaz, yalnızca otomatik tarama trafiğinin log gürültüsünü azaltır. Gerçek koruma bir sonraki bölümde.

SSH anahtarı: parolayı bırakın

Parola ile bağlantı, internete açık bir kapıda sürekli deneme yapılması demektir. Açık bir 22 portu saatler içinde otomatik deneme trafiği çekmeye başlar. Anahtar bu sorunu tamamen ortadan kaldırır.

1. Anahtar üretin (kendi bilgisayarınızda)

ssh-keygen -t ed25519 -C "adiniz@bilgisayariniz"

ed25519 seçin — RSA'dan kısa ve güçlüdür. Parola sorulduğunda boş bırakmayın: anahtar dosyanız çalınırsa tek koruma o parola olur.

İşlem sonunda iki dosya oluşur: ~/.ssh/id_ed25519 (özel anahtar, kimseyle paylaşılmaz) ve ~/.ssh/id_ed25519.pub (açık anahtar, sunucuya gidecek olan). Sağlayıcıya, arkadaşınıza veya bir destek talebine yalnızca .pub uzantılı olanı verin.

2. Anahtarı sunucuya kopyalayın

ssh-copy-id [email protected]

ssh-copy-id yoksa elle:

cat ~/.ssh/id_ed25519.pub | ssh root@IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Anahtarı elle yerleştirdiyseniz dosya izinlerini kontrol edin. Anahtar doğru olduğu hâlde girişin sessizce reddedilmesinin en sık sebebi budur: sshd, fazla açık izinlere sahip bir authorized_keys dosyasını güvenmediği için yok sayar.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

3. Anahtarla bağlandığınızı DOĞRULAYIN

ssh [email protected]

Parola sorulmadan girdiyseniz anahtar çalışıyor. Bu adımı atlamayın — sıradaki adım parolayı kapatıyor ve anahtar çalışmıyorsa sunucuya erişiminizi kaybedersiniz.

4. Parola girişini kapatın

/etc/ssh/sshd_config içinde:

PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password

Sonra:

sshd -t && systemctl reload sshd

sshd -t yapılandırmayı uygulamadan önce sınar. Bu komutu atlayıp bozuk bir yapılandırmayı yüklerseniz SSH servisi açılmaz.

İki ayrıntı burada insanı yanıltır. Birincisi servis adı dağıtıma göre değişir: Debian ve Ubuntu'da ssh, RHEL ailesinde sshd. Komut "böyle bir birim yok" derse yanlış adı kullanıyorsunuzdur, yapılandırma bozuk değildir.

İkincisi daha sinsi: güncel Debian ve Ubuntu şablonlarında /etc/ssh/sshd_config dosyasının en başında bir Include /etc/ssh/sshd_config.d/*.conf satırı bulunur. sshd bir ayarın ilk gördüğü değerini kullandığı için o dizindeki dosyalar, ana dosyada daha aşağıda yazdığınız satırı sessizce geçersiz kılar. Bazı bulut imajları tam olarak oraya PasswordAuthentication yes yazan bir dosya bırakır. Dolayısıyla değişikliği uyguladıktan sonra etkin değeri doğrulayın:

sshd -T | grep -i passwordauthentication

Çıktı passwordauthentication no demiyorsa parola girişi hâlâ açıktır; sshd_config.d dizinini de düzeltmeniz gerekir.

Mevcut oturumu kapatmayın

Değişikliği uyguladıktan sonra açık oturumu kapatmadan yeni bir terminalde bağlanmayı deneyin. Yeni bağlantı başarısız olursa hâlâ açık olan eski oturumdan geri alabilirsiniz. Bu tek alışkanlık, sunucuya erişimi kaybetmenin en sık sebebini ortadan kaldırır.

Yine de kilitli kalma ihtimaline karşı, satın alma aşamasında sorulacak soru şudur: SSH tamamen çalışmaz hâle gelirse elimde hangi yol kalıyor? Panel üzerinden erişilen bir konsol bu durumda tek çıkıştır; olmadığında çözüm yeniden kurulumdur. Sanal sunucu paketlerinde sunucu yönetimi ve yeniden kurulum müşteri panelinden yapılır.

Faydalı kısayol

~/.ssh/config dosyasına ekleyin:

Host datafex
    HostName 185.137.98.29
    User root
    Port 22
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes

Artık ssh datafex yeterli. IdentitiesOnly yes satırı bilgisayarınızda birden fazla anahtar varken işe yarar: onu yazmazsanız istemci elindeki bütün anahtarları sırayla dener ve sunucudaki MaxAuthTries sınırına takılıp bağlantı, doğru anahtar hiç denenmeden kesilebilir.

Bir de alışkanlık olarak edinilen ama edinilmemesi gereken bir şey var: ssh -A ile anahtar yönlendirme. Yönlendirme açıkken bağlandığınız sunucunun root yetkisine sahip olan herkes, o oturum boyunca sizin anahtarınızı kullanarak başka sunuculara bağlanabilir. Kendi makinenizden zincirleme bağlantı kurmanız gerekiyorsa -A yerine ProxyJump kullanın.

Sonraki adım

Bağlantı kurulduktan sonraki ilk iş sunucuyu sertleştirmektir: sunucu güvenliği temel adımlar

Windows sunucu kullanıyorsanız: RDP ile Windows sunucuya bağlanma

Sunucuyu henüz almadıysanız ve iki şablon arasında kararsızsanız, kullanılabilir RAM farkı ile aylık tutarı yan yana koyan sayfa şurada: hangi şablon hangi işte daha uygun, fiyatıyla

Sunucuyu bir oyun sunucusu için aldıysanız, oyun başına oyuncu sayısına göre RAM ve vCPU önerileri: oyun sunucusu paketleri

Bu rehberdeki bilgiyle ilerlemek isterseniz:

Linux şablonlu paketleri görün

İlgili rehberler