1. Anasayfa
  2. Linux

Ubuntu 22.04’te OpenSSH Kurulumu ve Windows’ta PuTTY ile Şifresiz SSH Bağlantısı


Günümüzde birden fazla sunucu yöneten sistem yöneticilerinin ya da geliştiricilerin günlük rutini haline gelen şeylerden biri SSH bağlantısı. Her gün aynı sunuculara defalarca bağlanmak terminalde şifre yazmak, yazarken yazdığını görememek ve bazen en ufak bir yazım hatası yüzünden başarısız oturumlarla vakit kaybetmek…

Ben de uzun süre bu süreci klasik yöntemlerle yürüttüm. Ancak zamanla sistem sayısı arttıkça her seferinde parola girmek hem verimi düşürdü hem de ciddi bir güvenlik riski doğurdu. Özellikle de paylaşımlı oturumlar, parola kayıt hataları, brute-force saldırı denemeleri gibi faktörler iyiden iyiye can sıkmaya başladı.

Çözüm mü? Anahtar tabanlı, yani şifresiz SSH bağlantısı.
Hızlı, güvenli, otomatikleştirilebilir ve oldukça profesyonel.

Bu makalemde Ubuntu Server 22.04 yüklü sunucunuza nasıl şifresiz SSH bağlantısı kurabileceğinizi Windows ortamında bunu nasıl yapılandırabileceğinizi sık yapılan hataları ve kendi deneyimlerimden çıkardığım bazı kritik noktaları adım adım aktaracağım.

Anahtar Tabanlı SSH Nedir ve Neden Kullanılır?

Geleneksel SSH bağlantısı şu şekildedir.

ssh kullanici@sunucu_ip → Parola sorar → Doğrulama → Oturum açılır

Ama her defasında parola girmek güvenli mi? Hayır.
Karmaşık parola kullanmak zorunda mıyız? Evet.
Ama hatırlaması kolay mı? Genellikle hayır.
Peki daha iyisi var mı? Kesinlikle!

Anahtar tabanlı doğrulama, SSH bağlantısında şu şekilde çalışır:

  • Siz bilgisayarınızda bir anahtar çifti oluşturursunuz.
  • Genel anahtar sunucuya yüklenir.
  • Özel anahtar sadece sizde kalır.
  • Bağlantı sırasında özel anahtarınız, genel anahtar ile eşleşirse erişim sağlanır.

Güvenlik Avantajları:

  • Sunucuya şifre gönderilmez.
  • Parola brute-force saldırılarına karşı dirençlidir.
  • Her bağlantı şifrelidir ve doğrulaması oldukça güçlüdür.
  • İsteğe bağlı olarak özel anahtarınıza bir parola (passphrase) da eklenebilir.

Anahtar tabanlı bağlantıyı otomatize edilmiş işlemlerde (örneğin cron job’lar, yedekleme senaryoları veya Ansible playbook’ları) kullanmak neredeyse zorunluluk. Özellikle yüzlerce sunucu yöneten sistemciler için tek alternatif diyebilirim.

Adım 1: Ubuntu 22.04’te OpenSSH Kurulumu

1.1 Gerekli Paketlerin kurulması.

sudo apt update && sudo apt install openssh-server

Bu komut ile SSH sunucusunu kurar. Kurulum sırasında OpenSSH servisi otomatik olarak başlar.

1.2 Servis Durumunu Kontrol Ediniz

sudo systemctl status ssh

Komut çıktısında active (running) ifadesini gördüyseniz her şey yolunda.

1.3 SSH Servisini Sistem Açılışında Otomatik Başlatın

sudo systemctl enable ssh

Bunu yapmayı unutan çok kişi tanıdım. Sunucu yeniden başlatıldığında SSH gelmediğinde fiziksel erişimle uğraşmak zorunda kalırsınız.

1.4 (Varsa) UFW Güvenlik Duvarını Ayarlayın

sudo ufw allow ssh
sudo ufw enable

Eğer özel bir port kullanıyorsanız (sshd_config dosyasından değiştirilmişse) o portu da açmayı unutmayın.

sudo ufw allow 2222/tcp


🛠️ Adım 2: Windows Üzerinde SSH Anahtarı Oluşturmak (PuTTYgen)

Windows ortamında, OpenSSH’nin id_rsa dosyalarını kullanmak yerine .ppk formatı gerekir. Bu nedenle PuTTYgen ile anahtar çifti oluşturacağız.

2.1 PuTTY ve PuTTYgen İndir

https://www.putty.org/

Yalnızca PuTTY değil, puttygen.exe ve pageant.exe gibi diğer yardımcı araçlar da gelir.

2.2 RSA Anahtar Üretimi

  1. PuTTYgen’i çalıştırın.
  2. RSA seçin (2048 veya tercihen 4096 bit).
  3. “Generate” butonuna tıklayın.
  4. Fare hareketleriyle rastgelelik üretin.

2.3 Özel Anahtarınızı Parola ile Korumak

  • “Key passphrase” ve “Confirm passphrase” alanlarını doldurun.
  • Bu, özel anahtar dosyanızın şifreli kalmasını sağlar.

Eğer bu anahtarı otomatik işlemlerde kullanacaksanız passphrase koymamak da tercih edilebilir ama bu durumda dosyayı çok iyi korumanız gerekir.

2.4 Anahtarları Kaydedin

  • Public Key: .pub olarak
  • Private Key: .ppk olarak

Ayrıca “Public key for pasting into OpenSSH authorized_keys file” kısmındaki metni de kopyalayın.

Adım 3: Genel Anahtarı Ubuntu Sunucusuna Eklemek

3.1 Sunucuya İlk Kez Parola ile Bağlanın

ssh kullanici@sunucu_ip

3.2 .ssh Dizini ve authorized_keys Dosyasını Oluşturun

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

Yukarıda kopyaladığınız genel anahtar metnini bu dosyaya yapıştırın.
Son olarak:

chmod 600 ~/.ssh/authorized_keys

SSH bu izinleri sıkı kontrol eder. Aksi takdirde bağlantıyı reddeder.

3.3 Bağlantı Testine Hazırsınız

Çıkış yapın:

exit

Adım 4: PuTTY ile Şifresiz Bağlantı Kurmak

  1. PuTTY’yi açın.
  2. “Host Name” alanına kullanici@sunucu_ip yazın.
  3. Sol menüde Connection > SSH > Auth yolunu izleyin.
  4. “Private key file for authentication” kısmında .ppk dosyanızı seçin.
  5. Ana menüye dönüp “Open” diyerek bağlantıyı başlatın.

Eğer özel anahtarınıza passphrase koyduysanız, sizden yalnızca bu parola istenir.

100’den fazla Ubuntu sunucuda Ansible playbook’ları çalıştırırken her makineye parola girmek imkânsız olurdu. Bu yöntemle tek bir komutla hepsine otomatik erişim sağladım.

Uzaktaki bir dosyayı rsync veya scp ile almak için parola girmeye gerek kalmadan cron job çalıştırabildim.

Sık değişen parolalar nedeniyle bağlantı sorunu yaşayan müşterilerde, kalıcı bir çözüm olarak anahtar tabanlı sisteme geçiş önerdim. Hatalar neredeyse sıfıra indi.