← Ana Sayfaya Dön

OverTheWire Bandit: Seviye 13 → Seviye 14

Teknik Not

Bağlam

Normalde SSH ile giriş yaparken kullanıcı adı ve şifre kullanırız. Ancak daha güvenli ve otomasyona uygun bir yöntem daha vardır: Anahtar Tabanlı Yetkilendirme (Key-Based Authentication).

Bu sistemde bir “Public Key” (kapı kilidi) ve bir “Private Key” (anahtar) bulunur. Sunucuda kilit vardır, sizdeki anahtar uyarsa şifre sormadan içeri girersiniz.

Bu seviyede bize bir şifre verilmiyor, bunun yerine sshkey.private adında bir dosya veriliyor.

İpucu: SSH anahtarları çok hassas dosyalardır. Eğer bu dosyayı /tmp altına kopyalarsanız veya kendiniz oluşturursanız, izinlerini sadece sahibinin okuyabileceği şekilde ayarlamanız gerekir (chmod 600 sshkey.private). Aksi takdirde SSH, “bu anahtar çok açık” diyerek reddedebilir. Bu seviyede dosya hazır geldiği için doğrudan kullanabiliriz.

Çözüm

Önemli: Sunucu bazen localhost üzerinden yapılan bağlantıları engeller. Bu durumda en garanti yöntem, anahtarı kendi bilgisayarımıza alıp oradan bağlanmaktır.

Yöntem 1: Kendi Bilgisayarından Bağlanmak (Kesin Çözüm)

  1. Sunucudaki anahtarın içeriğini okuyun:
    cat sshkey.private
  2. Çıkan metni (-----BEGIN OPENSSH PRIVATE KEY----- ile başlayan) kopyalayın.
  3. Kendi bilgisayarınızda bir dosya oluşturun ve yapıştırın:
    nano bandit14.key
    # Yapıştır ve kaydet (Ctrl+O, Enter, Ctrl+X)
  4. İzinleri ayarlayın:
    chmod 600 bandit14.key
  5. Kendi bilgisayarınızdan sunucuya bağlanın:
    ssh -i bandit14.key bandit14@bandit.labs.overthewire.org -p 2220
    Bu yöntemle “localhost blocked” hatasını kesinlikle almazsınız.

Yöntem 2: Sunucu İçinden Zorlamak (Localhost)

Eğer sunucu içinden çıkmadan yapmak istiyorsanız, şu komutu deneyebilirsiniz (ancak engellenebilir):

ssh -i sshkey.private -p 2220 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no bandit14@localhost

Bir sonraki seviyeye geçerken işimiz kolaylaşsın diye bandit14’ün gerçek şifresini öğrenmek iyi bir fikirdir. /etc/bandit_pass/ altında her kullanıcının şifresi kendi adıyla saklanır:

cat /etc/bandit_pass/bandit14
# 4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e

Öğrendiklerimiz

  1. SSH Private Key (id_rsa): Dijital bir anahtardır. Asla başkalarıyla paylaşılmamalıdır.
  2. -i Parametresi: SSH’a hangi anahtar dosyasını kullanacağını söyler.
  3. Localhost SSH: Bir sunucudan çıkmadan, aynı sunucudaki başka bir kullanıcıya geçmek için SSH tüneli kullanılabilir.