Linux Sunucusunda SSH Anahtar Tabanlı Kimlik Doğrulama

Berk Furkan TORAMAN - May 12 '22 - - Dev Community

Image description

SSH , sunucuları yönetmek ve onlarla iletişim kurmak için kullanılan şifreli bir protokoldür. Bir Linux sunucusuyla çalışırken, genellikle zamanımızı sunucuya SSH aracılığıyla bağlı bir terminalde geçiriyoruz.

Bir SSH sunucusunda oturum açmanın birkaç farklı yolu olsa da bu yazımda SSH anahtarlarını ayarlamayı ele alacağım. SSH anahtarları, sunucumuzda oturum açmanın son derece güvenli bir yolunu sağlar.

SSH anahtar çiftleri, bir istemcinin kimliğini bir SSH sunucusunda doğrulamak için kullanılabilen, kriptografik olarak güvenli iki anahtardır. Her anahtar çifti, bir Public anahtar ve bir Private anahtardan oluşur. Private anahtar kullanıcı (istemci,client) tarafından tutulur ve kesinlikle gizli tutulmalıdır. Private anahtarın herhangi bir şekilde ele geçirilmesi, saldırganın ek kimlik doğrulama olmaksızın ilişkili public anahtarla yapılandırılmış sunucularda oturum açmasına olanak tanır. İlişkili public anahtar, herhangi bir olumsuz sonuç olmadan özgürce paylaşılabilir. Public anahtar, yalnızca private anahtarın şifresini çözebileceği mesajları şifrelemek için kullanılabilir . Bu özellik, anahtar çiftini kullanarak kimlik doğrulamanın bir yolu olarak kullanılır.

Adım 1 — SSH Anahtarları Oluşturma

Sunucumuza SSH anahtar kimlik doğrulamasını yapılandırmanın ilk adımı, yerel bilgisayarımızda bir SSH anahtar çifti oluşturmaktır. Bunu yapmak için ssh-keygen komutu varsayılan olarak 3072 bitlik bir RSA anahtar çifti oluşturacaktır.

İlk olarak yerel bilgisayarımızda şunu yazarak bir SSH anahtar çifti oluşturalım:

$ ssh-keygen
Enter fullscreen mode Exit fullscreen mode

Image description

Adım 2 — SSH Public Anahtarını Sunucuya Kopyalama

- Yöntem 1 (Otomatik)

Public anahtarımızı ssh-copy-id yöntemiyle basit bir şekilde hangi sunucuya istiyorsak onun bilgilerini girerek göndereceğiz. user_name@server_ip_address

$ ssh-copy-id user_name@server_ip_address
Enter fullscreen mode Exit fullscreen mode

Image description

- Yöntem 2 (Manuel)

Public anahtarımızı görmek için id_rsa.pub dosyasına gidiyoruz. Ve anahtarı kopyalıyoruz.

$ cat ~/.ssh/id_rsa.pub
Enter fullscreen mode Exit fullscreen mode

Image description

Kopyaladığımız anahtarı istediğimiz sunucuya göndermek için o sunucuya geçiş yapıyoruz. Sunucunun ~/.ssh/authorized_keys konumunda bulunan dosyayı metin editörüyle açıyoruz ve kopyaladığımız Public anahtarı buraya yapıştırıyoruz. Kaydedip çıkıyoruz.

Image description

Adım 3 — SSH Anahtarlarını Kullanarak Sunucuda Kimlik Doğrulama

Yukarıdaki adımları eksiksiz bir şekilde yaptığımıza göre SSH bağlantımızı test edebiliriz. Artık parola olmadan oturum açabiliyor olmamız lazım.

$ ssh user_name@server_ip_address
Enter fullscreen mode Exit fullscreen mode

Private anahtarınız için bir parola koymadıysanız hemen oturum açacaksınız. Anahtarı oluştururken Private anahtar için bir parola koyduysanız şimdi girmeniz gerekecek. Ben parola koymadığım için aşağıda görüldüğü gibi direkt giriş sağladım.

Image description

Artık, bir hesap parolası olmadan oturum açmanıza olanak tanıyan, sunucunuzda yapılandırılmış ve çalışan SSH anahtarı tabanlı kimlik doğrulamaya sahipsiniz :)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .