SSH ile Pardus Erişimi: Anahtar Tabanlı Kimlik Doğrulama Rehberi
SSH ile Pardus Erişimi, Bir Pardus sunucusu kurduğunuzda veya ofisteki bilgisayarınıza evden bağlanmak istediğinizde, kullanacağınız kapıdır. (SSH – Secure Shell)
Ancak varsayılan SSH ayarları, kapıyı “Şifre” ile kilitler. Şifreler çalınabilir, tahmin edilebilir veya “Brute-Force” (saniyede binlerce şifre deneyen botlar) saldırılarıyla kırılabilir.
Peki ya sunucunuzun kapısındaki kilidi değiştirip, dünyada sadece sizde bulunan dijital bir anahtarla açılan özel bir kilit taksaydık?
Bu rehberde, Pardus 25 üzerinde OpenSSH servisini kuracak, Ed25519 standardında kriptografik anahtarlar oluşturacak ve şifre ile girişi tamamen kapatarak sunucunuzu bir kaleye dönüştüreceğiz.
Bölüm 1: Pardus Üzerinde SSH Servisini Aktif Etmek (Sunucu Tarafı)
Öncelikle bağlanılacak olan bilgisayarda (Sunucu/Pardus) SSH servisinin çalıştığından emin olmalıyız.
Adım 1.1: Kurulum ve Kontrol
Terminali açın ve şu komutları girin:
sudo apt update
sudo apt install openssh-server -y
sudo systemctl enable --now ssh

Servisin durumunu kontrol edin:
sudo systemctl status ssh
Yeşil renkli active (running) yazısını görüyorsanız kapı açılmıştır.
Adım 1.2: IP Adresini Öğrenme
Bu bilgisayara bağlanmak için IP adresine ihtiyacınız var.
ip addr show

Çıktıdaki inet 192.168.1.XX gibi olan adres sizin sunucu IP’nizdir. Not edin.
Bölüm 2: Anahtar Çifti Oluşturmak (İstemci Tarafı)
Şimdi kendi bilgisayarınıza (bağlantıyı yapacak olan bilgisayar) geçin. Bu bir Windows, Mac veya başka bir Pardus olabilir. Burada bir anahtar çifti üreteceğiz.
- Public Key (Genel Anahtar): Bunu sunucuya vereceğiz. (Kilit)
- Private Key (Özel Anahtar): Bu bizde kalacak ve asla kimseyle paylaşılmayacak. (Anahtar)
Adım 2.1: Modern Şifreleme (Ed25519)
Eski RSA anahtarları yerine, daha kısa, daha hızlı ve daha güvenli olan Ed25519 algoritmasını kullanacağız.
Kendi bilgisayarınızın terminalinde şu komutu yazın:
ssh-keygen -t ed25519 -C "ofis-bilgisayarim"Code language: JavaScript (javascript)
Size dosyayı nereye kaydedeceğini soracaktır (/home/user/.ssh/id_ed25519). Enter‘a basıp geçin. Ardından bir “Passphrase” (Parola) soracaktır. Ekstra güvenlik isterseniz bir şifre belirleyin, yoksa Enter‘a basarak boş geçin (Otomatik giriş için boş geçilmesi önerilir).
Bölüm 3: Kilidi Sunucuya Takmak (Anahtarı Kopyalama)
Elimizde artık bir anahtar var. Şimdi sunucuya (Pardus’a) gidip “Ben gelince kapıyı bu kilitle aç” dememiz lazım.
Yöntem A: ssh-copy-id (En Kolay Yol)
Kendi bilgisayarınızdan şu komutu çalıştırın:
ssh-copy-id -i ~/.ssh/id_ed25519.pub kullanici_adi@sunucu_ip_adresiCode language: JavaScript (javascript)
(Örn: ssh-copy-id -i ~/.ssh/id_ed25519.pub ahmet@192.168.1.50)
Sizden son kez sunucunun şifresini isteyecektir. Şifreyi girdiğinizde anahtarınız sunucuya kopyalanır.
Yöntem B: Manuel Kopyalama (Windows Powershell vb. için)
Eğer ssh-copy-id komutu yoksa:
- Kendi bilgisayarınızdaki
.ssh/id_ed25519.pubdosyasının içeriğini kopyalayın. - Sunucuda
~/.ssh/authorized_keysdosyasını açın ve en alt satıra yapıştırın.
Bölüm 4: Test ve Güvenlik Duvarını Örmek
Şimdi en kritik aşamadayız. Önce anahtarla girebildiğimizi test edeceğiz, sonra şifreli girişi kapatacağız.
Adım 4.1: Şifresiz Giriş Testi
Kendi bilgisayarınızdan bağlanmayı deneyin:
ssh kullanici_adi@sunucu_ip_adresiCode language: CSS (css)
Eğer size şifre sormadan doğrudan terminale düşürdüyse tebrikler! Anahtar çalışıyor.
Adım 4.2: Şifre ile Girişi Kapatmak (Hardening)
Şimdi sunucuya (Pardus) gidin ve SSH ayar dosyasını düzenleyin:
sudo nano /etc/ssh/sshd_config
Dosya içinde şu satırları bulun ve değiştirin (Başındaki # işaretini kaldırmayı unutmayın):
# 1. Root kullanıcısının uzaktan girişini engelle (Güvenlik şartı!)
PermitRootLogin no
# 2. Şifre ile girişi tamamen kapat (Sadece anahtar geçerli olsun)
PasswordAuthentication no
# 3. Boş şifreleri engelle
PermitEmptyPasswords noCode language: PHP (php)

Dosyayı kaydedip çıkın (Ctrl+O, Enter, Ctrl+X) ve servisi yeniden başlatın:
sudo systemctl restart ssh
Artık dünyanın en güçlü bilgisayarı bile sunucunuzun şifresini tahmin etmeye çalışsa başarısız olacaktır; çünkü sunucunuz şifre kabul etmemektedir!
Bonus: SSH Config Dosyasının Gücü
Sürekli ssh ahmet@192.168.1.50 yazmak zor mu geliyor? Kendi bilgisayarınızda bir kısayol (alias) oluşturalım.
Kendi bilgisayarınızda ~/.ssh/config dosyasını oluşturun:
nano ~/.ssh/configCode language: JavaScript (javascript)
İçine şunu yazın:
Host pardus-sunucum HostName 192.168.1.50 User ahmet IdentityFile ~/.ssh/id_ed25519Code language: JavaScript (javascript)
Kaydedin.
Artık sadece şu komutla bağlanabilirsiniz:
ssh pardus-sunucum
Sıkça Sorulan Sorular
Özel anahtarımı (Private Key) kaybedersem ne olur?
Sunucuya uzaktan erişiminiz tamamen kesilir. Çünkü şifre ile girişi de kapattık. Bu durumda sunucunun başına fiziksel olarak gidip (klavye/monitör bağlayıp) PasswordAuthentication yes yapmanız gerekir. Özel anahtarınızı mutlaka yedekleyin!
Aynı anahtarı birden fazla sunucuda kullanabilir miyim?
Evet. Oluşturduğunuz id_ed25519.pub (Genel Anahtar) içeriğini 100 farklı sunucuya kopyalarsanız, hepsi tek bir özel anahtarla açılır.
Windows bilgisayarımdan Pardus’a bağlanırken bu yöntemi kullanabilir miyim?
Evet. Windows 10 ve 11’de artık yerleşik OpenSSH istemcisi var. PowerShell üzerinden ssh-keygen ve ssh komutlarını aynen kullanabilirsiniz. PuTTY kullanıyorsanız .ppk formatına çevirmeniz gerekir.
“Permission denied (publickey)” hatası alıyorum, neden?
Genellikle .ssh klasörünün izinleri yanlıştır. Sunucuda şu komutları çalıştırın: chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys SSH, izinler çok açıksa (başkası okuyabiliyorsa) güvenlik gereği çalışmaz.
Anahtar oluştururken “Passphrase” girmeli miyim?
Eğer bilgisayarınızın çalınma riski varsa (laptop vb.) Passphrase girmelisiniz. Böylece hırsız bilgisayarınızı açsa bile, SSH anahtarını kullanmak için o ikinci şifreyi bilmek zorunda kalır.
SSH portunu (22) değiştirmek güvenliği artırır mı?
Evet. sshd_config dosyasından Port 2222 gibi bir ayar yapmak, internetteki rastgele tarama yapan botların %90’ından kurtulmanızı sağlar. Ancak tek başına yeterli değildir, anahtar kullanımı asıl korumadır.
Bağlantı belli bir süre işlem yapmazsam kopuyor, nasıl engellerim?
SSH Config dosyanıza veya sunucu ayarlarına ServerAliveInterval 60 ekleyebilirsiniz. Bu, her 60 saniyede bir “Ben buradayım” sinyali göndererek bağlantıyı canlı tutar.