Linux Sunucular Arası Şifresiz SSH Bağlantı (SSH-Keygen)
Bir Linux sunucusundan farklı Linux sunucusuna SSH bağlantı sağladığımızda karşılaştığımız şifre işlemini pratik bir şekilde çözmek, kolay ve güvenli bir tanımlama işlemi oluşturmak için SSH-Keygen ve SSH-Copy-İd kullanarak çözüm sağlayacağız.
SSH-Keygen – SSH-Copy-ID
İstemci cihazımızdan (sunucuya bağlantı yaptığımız kendi yerel istemcimizde) bir key-pair oluşturulur.
# ssh-keygen
Varsayılan olarak ssh-keygen, çoğu kullanım durumu için yeterince güvenli olan 2048 bitlik bir RSA key pair oluşturur. Key Pair oluşturulurken aşağıdaki adımları takip etmekteyiz.
1-Generating public/private rsa key pair.
2-Enter file in which to save the key (/root/.ssh/id_rsa):
- key-pair ana dizinde bulunan .ssh / alt dizinine kaydetmek için ENTER’a basın.
- Farklı isimde kaydetmek için de örnek olarak Enter file in which to save the key “(/root/.ssh/id_rsa): LinuxSSH” giriş yapabilirsiniz.
3-Enter passphrase (empty for no passphrase):
4-Enter same passphrase again:
Seçeneklerini ENTER ile ilerliyoruz. Burada isteğe bağlı olarak, güvenli bir parola girebilirsiniz. Bu parola yetkisiz kullanıcıların oturum açmasını önlemek için ek bir güvenlik sağlar.
Oluştuğumuzu görmek için; # ls –lash .ssh/
kontrol ediyor.
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@remote_host
Oluşturduğumuz public_key’ i, ssh-copy-id tool yardımıyla uzaktaki sunucunun authorized_keys dosyasına yüklenilir.
Kaynak Linux Sunucu
Hedef Linux Sunucu
Kaynak Linux sunucudan > Hedef Linux sunucusuna ssh yaparak deneme yapalım.
# ssh root@remote_host
Komut ve Seçenek Özeti
Aşağıda, keygen aracında yaygın olarak kullanılan seçeneklerin bir özeti bulunmaktadır:
-b “Bits” Bu seçenek anahtardaki bit sayısını belirtir. SSH için kullanım senaryosunu düzenleyen düzenlemeler, belirli bir anahtar uzunluğunun kullanılmasını gerektirebilir. Genelde 2048 bit, RSA anahtarları için yeterli kabul edilir.
-e “Export” Bu seçenek, OpenSSH anahtar dosya biçimi ile RFC 4716, “SSH Public Key File Format” belgesinde belgelenen biçim arasında mevcut anahtarların yeniden biçimlendirilmesine izin verir.
-p “Change the passphrase” Bu seçenek, bir özel anahtar dosyasının parolasının [-P eski_parola] ve [-N yeni_parola], [-dosyası] ile değiştirilmesine izin verir.
-t “Type” Bu seçenek, oluşturulacak anahtarın türünü belirtir. Yaygın olarak kullanılan değerler şunlardır: RSA anahtarları için –rsa DSA anahtarları için -dsa Elliptic curve DSA anahtarları için -ecdsa
-i ” Input” Var olan bir anahtara erişmek için ssh-keygen gerektiğinde, bu seçenek dosyayı belirler.
-f “File” Oluşturulan anahtarın saklanacağı dosyanın adını belirtir.
-N “New” Anahtar için yeni bir parola sağlar.
-P ” Passphrase” Bir anahtarı okurken (eski) parolayı sağlar.
-c ” Comment” Bir anahtar dosyaya ilişkin açıklamayı değiştirir.
-p Özel anahtar dosyasının parolasını değiştirin.
-q ssh-keygen’den çıkış.
-v Ayrıntılı modu.
-l ” Fingerprint” Belirtilen genel anahtarın parmak izini yazdırın.
-B “Bubble babble” Bu anahtar dosyada ” bubble babble” (Tectia formatı) parmak izini gösterir.
-F Bilinen bir barındırıcı dosyasında belirli host adını aratır.
-R Bilinen host adına ait tüm anahtarları bilinen bir host dosyasından kaldırın.
-y Özel bir OpenSSH format dosyasını okuyun ve standart çıktıya bir OpenSSH genel anahtarı yazdırın.
Daha fazla bilgi için # man ssh-keygen
komutunu kullanabilirsiniz.
Sunucunuzda Şifre Doğrulamayı Devre Dışı Bırakın
Hesabınızda SSH kullanarak parola olmadan oturum açabildiyseniz, hesabınız için SSH anahtarı tabanlı kimlik doğrulamasını başarıyla yapılandırmışsınızdır. Ancak, parola tabanlı kimlik doğrulama mekanizmanız hala etkindir, bu da sunucunuzun kaba kuvvet saldırılarına hala açık olduğu anlamına gelir.
Bu bölümdeki adımları tamamlamadan önce, bu sunucudaki root hesap için yapılandırılmış SSH anahtarı tabanlı kimlik doğrulamasına sahip olduğunuzdan veya tercihen bu bağlantıda root olmayan bir hesap için yapılandırılmış SSH anahtar tabanlı kimlik doğrulamasına sahip olduğunuzdan emin olun.
Uzak hesabınızın yönetici ayrıcalıklarına sahip olduğunu onayladıktan sonra, uzak sunucunuzda SSH anahtarlarıyla root olarak veya sudo ayrıcalıklarına sahip bir hesapla oturum açın. Ardından, SSH konfigürasyon dosyasını açın:
sudo vi /etc/ssh/sshd_config
Dosyanın içinde PasswordAuthentication adlı bir yönerge arayın. Bu yorumlanabilir. Metin eklemek için i tuşuna basın ve ardından satırın açıklamasını kaldırın ve değeri “no” olarak ayarlayın. Bu, hesap şifrelerini kullanarak SSH üzerinden giriş yapma olanağınızı devre dışı bırakır;
PasswordAuthentication no
Değişiklik kayır ettikten sonra sshd hizmetini yeniden başlatmamız gerekir.
sudo systemctl restart sshd.service
Önlem olarak, yeni bir terminal penceresi açın ve bu oturumu kapatmadan önce SSH hizmetinin doğru çalışıp çalışmadığını test edin
ssh username@remote_host
SSH hizmetinizi doğruladıktan sonra, tüm mevcut sunucu oturumlarını güvenle kapatabilirsiniz.
Vakit ayıp okuduğunuz için teşekkür ederim.
Başka yazımda görüşmek dileğiyle…