İçeriğe geç
Güvenli başlangıç

VPS'e SSH Anahtarıyla Bağlanma Rehberi

Ed25519 SSH anahtarı oluşturun, açık anahtarı VPS'e ekleyin ve ikinci oturumla erişimi doğrulayın. İzinler, bağlantı hataları ve güvenli geri dönüş.

ServerQ Yayın Ekibi8 dk okuma

SSH anahtarı, VPS yönetiminde her bağlantıda sunucu parolasını kullanma ihtiyacını azaltır. Açık anahtar sunucuda tutulur; özel anahtar bilgisayarınızda kalır. Anahtarı bir parola cümlesiyle korumak, dosya ele geçirilirse ek koruma sağlar.

Güvenli geçişin kritik noktası doğru sıradır: anahtar oluşturun, ekleyin, yeni oturumda deneyin, sonra eski giriş yöntemini sınırlandırın. Mevcut bağlantıyı en sona kadar açık tutun.

Bu rehberle neler yapabilirsiniz?

  • Ed25519 anahtar çifti oluşturmak
  • Açık anahtarı doğru izinlerle sunucuya eklemek
  • Parola girişini kapatmadan bağımsız bağlantı testi yapmak
Kapsam

Ubuntu Server 24.04 LTS ve modern OpenSSH istemcisi. Örnek IP adresini kendi adresinizle değiştirin.

Başlamadan önce
  • Çalışan bir SSH bağlantısı veya sağlayıcı konsolu
  • VPS üzerinde sudo yetkili operator hesabı
  • Linux, macOS veya OpenSSH istemcili Windows terminali

1. Anahtarı kendi bilgisayarınızda oluşturun

Yerel bilgisayarınızda
ssh-keygen -t ed25519 -a 64 -f ~/.ssh/serverq_ed25519 -C "serverq-admin"
ssh-keygen -lf ~/.ssh/serverq_ed25519.pub

Komut dosya zaten varsa üzerine yazma sorusu sorar. Mevcut anahtarın üzerine yazmayın; farklı bir dosya adı seçin. Parola cümlesi sorulduğunda güçlü ve benzersiz bir değer belirleyin. İkinci komut açık anahtarın parmak izini gösterir; ekibinizde hangi anahtarın kime ait olduğunu kaydetmek için kullanabilirsiniz.

İki dosyanın görevi
DosyaNerede kalır?
serverq_ed25519Özel anahtar: yalnızca sizin güvendiğiniz cihaz ve şifreli yedeğiniz.
serverq_ed25519.pubAçık anahtar: VPS üzerindeki authorized_keys dosyasına eklenir.

Özel anahtarı destek kaydına, e-postaya, Git deposuna veya sunucuya kopyalamayın. Birden fazla ekip üyesi için tek anahtar paylaşmak yerine her kişiye ayrı anahtar verin. Böylece bir kişinin erişimini kaldırmak diğerlerini etkilemez.

2. Açık anahtarı sunucuya ekleyin

Parolalı girişiniz açıksa ve istemcinizde ssh-copy-id varsa aşağıdaki yöntem anahtarı doğru dosyaya ekler. Özel SSH portu kullanıyorsanız -p seçeneği ekleyin. Varsayılan örnekte port 22’dir.

Yerel terminalde
ssh-copy-id -i ~/.ssh/serverq_ed25519.pub operator@203.0.113.10

ssh-copy-id yoksa yerel .pub dosyasındaki tek satırı kopyalayın. Sunucuda operator hesabıyla aşağıdaki dosyayı açın ve satırı sona ekleyin. Var olan anahtarları silmeyin. Yönetici konsolunda root olarak çalışıyorsanız önce su - operator ile hedef kullanıcıya geçin.

Sunucuda operator hesabıyla
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
nano ~/.ssh/authorized_keys

authorized_keys dosyasının sahibi bağlanacağınız kullanıcı olmalıdır. Özel anahtarın kendisini veya birden çok satıra bölünmüş anahtarı yapıştırmak kimlik doğrulamayı bozabilir. Dosya ve üst klasörlerde başka kullanıcıların yazma yetkisi bulunması da OpenSSH’nin anahtarı reddetmesine yol açabilir.

3. Parola geri dönüşü olmadan deneyin

Yeni yerel terminalde anahtarı zorunlu tutun
ssh -i ~/.ssh/serverq_ed25519 \
  -o IdentitiesOnly=yes \
  -o PreferredAuthentications=publickey \
  -o PasswordAuthentication=no \
  operator@203.0.113.10

Özel anahtarınızın parola cümlesinin sorulması normaldir; bu sunucu hesabının parolası değildir. Yeni oturumda sudo -v komutunu da deneyin. Oturum açılması tek başına yönetici yetkisinin çalıştığını göstermez.

4. SSH politikasını kontrollü sıkılaştırın

Ubuntu, /etc/ssh/sshd_config.d altındaki dosyaları ana yapılandırmadan okuyabilir. OpenSSH’de birçok ayarın ilk okunan değeri geçerlidir; dosya adına bakarak sonucun doğru olduğunu varsaymayın. Bulut imajının mevcut ayarlarını inceleyin ve etkili yapılandırmayı kontrol edin.

Önce mevcut kuralları inceleyin
sudo grep -R -E "^(Include|Match|PasswordAuthentication|KbdInteractiveAuthentication|PermitRootLogin)" /etc/ssh/sshd_config /etc/ssh/sshd_config.d/
/etc/ssh/sshd_config.d/00-serverq-access.conf
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no

Bu örnek, çalışan anahtarlı yönetici hesabı kurulduktan sonra doğrudan root girişini kapatır. Önceki adımları tamamlamadan uygulamayın. Match blokları varsa kullanıcıya veya adrese göre farklı sonuç oluşabilir; kendi bağlantı koşulunuzu ayrıca inceleyin.

Yapılandırmayı test edip yeniden yükleyin
sudo /usr/sbin/sshd -t
sudo /usr/sbin/sshd -T | grep -E "^(pubkeyauthentication|passwordauthentication|kbdinteractiveauthentication|permitrootlogin) "
sudo systemctl reload ssh

sshd -t hata verirse yeniden yüklemeyin. Başarılı yeniden yükleme sonrası üçüncü bir terminalde aynı anahtarlı bağlantıyı deneyin; ilk oturumu ancak bu testten sonra kapatın.

5. Bağlantı hatasını ve anahtar yaşam döngüsünü yönetin

Hata → ilk inceleme
BelirtiKontrol
Permission denied (publickey)Kullanıcı, -i dosyası, authorized_keys içeriği, sahiplik ve izinler.
Connection timed outIP, gerçek SSH portu, güvenlik duvarı ve sağlayıcı ağ kuralları.
Host identification has changedYeniden kurulum veya IP değişimini konsoldan doğrulayın.
Too many authentication failuresIdentitiesOnly=yes ile yalnızca seçilen anahtarı sunun.

Yerelde ssh -v ile bağlantı ayrıntılarını, sunucuda sudo journalctl -u ssh ile servis günlüklerini inceleyin. Günlük paylaşırken kullanıcı adları ve adresleri gerekirse maskeleyin. Anahtar kaybolur veya bir cihaz ele geçirilirse authorized_keys içindeki ilgili satırı kaldırın; yeni anahtarı ayrı bir oturumda doğrulayın. SSH yapılandırmasını bozduysanız açık oturumdan eklediğiniz dosyayı geri alın, sshd -t çalıştırın ve servisi yeniden yükleyin.

İnceleme kapsamı

Ed25519 anahtar üretimi ve parmak izi okuma geçici dosyalarla denendi; Bash örneklerinin söz dizimi kontrol edildi. SSH servisinin giriş politikasına canlı değişiklik uygulanmadı. Resmî dokümanlar ve örnek yapılandırmalar 30 Eylül 2026 tarihinde incelendi. Bu rehberdeki tam kurulum boş bir VPS üzerinde uçtan uca çalıştırılmadı. Mevcut sunucunuzu değiştirmeden önce ayrı bir deneme ortamında, kendi sürüm ve erişim koşullarınızla doğrulayın.

Resmî kaynaklar

Sürüm ve yapılandırma ayrıntılarını ilgili projenin güncel belgelerinden takip edin.