Bloğa geri dön

Linux Sunucunuzu SSH Anahtar Tabanlı Kimlik Doğrulama Kullanacak Şekilde Yapılandırma

Linux Sunucunuzu SSH Anahtar Tabanlı Kimlik Doğrulama Kullanacak Şekilde Yapılandırma

Linux Sunucusunda SSH

SSH, güvenli kabuk (secure shell) olarak da bilinen, bir sunucuya bağlanmak ve onunla iletişim kurmak için kullanılabilen bir protokoldür. Bu şifreli protokolü kullanarak bir terminal oturumu gerçekleştirmek üzere Linux sunucunuza bağlanabilirsiniz. Eğer bir OpenSSH sunucusu kullanıyorsanız, kimlik doğrulama süreci için öncelikli olarak izleyebileceğiniz iki farklı yol vardır. Birincisi, standart şifre tabanlı kimlik doğrulamanızdır. Burada, hesabınıza erişim sağlamak için yalnızca kullanıcı adı ve şifre bilgilerinizi kullanırsınız. Diğer yol ise Linux sunucunuzu SSH anahtar tabanlı kimlik doğrulama için yapılandırmaktır.

Bu kılavuzda, Linux sunucunuzu birincil kimlik doğrulama yöntemi olarak SSH anahtarlarını kullanacak şekilde nasıl yapılandırabileceğinize odaklanacağız. Ayrıca SSH anahtarlarının neden genellikle alışılagelmiş şifre koruma mekanizmasına tercih edildiğini de tartışacağız.

SSH Anahtarları Nedir?

SSH anahtarları, sunucudaki hesabınıza giriş yapmak için kullanacağınız kimlik bilgilerine benzer. Kullanıcı adınızı ve şifrenizi girmek yerine, aynı zamanda bir erişim kimlik bilgisi olan SSH anahtar çiftini kullanırsınız. Anahtarlar kriptografik olsa da, hizmet ettikleri amaç bu olduğundan onları kimlik doğrulama bilgileri olarak ele almalısınız.

Tipik bir SSH anahtarının iki parçası vardır: yetkilendirilmiş bir anahtar ve bir kimlik anahtarı. Yetkilendirilmiş anahtar, hesabınıza erişim sağlamak için özel kimlik anahtarınızla birlikte çalışan açık anahtardır. Açık anahtar, SSH ile oturum açmak istediğiniz uzak sunucuda bulunur ve kullanıcı hesabınızla ilişkili ~/.ssh/authorized_keys dosyasında yer alır. Kimlik anahtarları, yalnızca yetkili personelin ilgili hesaba erişebilmesini sağlamak amacıyla doğru kullanıcı olarak kimliğinizi doğrulamaya yarar. Toplu olarak bu anahtarlar, kullanıcının kimliğini doğruladıkları için kullanıcı anahtarları olarak adlandırılır. Sunucu her iki anahtarı da doğrulayabildiğinde, komutlarınızı yürütmek için bir kabuk oturumu başlatılır.

Ayrıca ana bilgisayar anahtarlarınız ve oturum anahtarlarınız da vardır. Protokol, ana bilgisayar anahtarını kullanarak yerel bilgisayarı, sistemi veya sunucuyu doğrular. Oturum anahtarları, bağlantı üzerindeki veri akışını şifrelemeye yardımcı olur. Bu, oturumunuzu ve ilgili etkinliklerinizi çok daha güvenli hale getirir.

Parola Koruması Yerine SSH Anahtarları

SSH anahtarı tabanlı kimlik doğrulamanın şifre korumasına tercih edilmesinin temel nedeni, ikincisinin sizi siber saldırılara karşı savunmasız bırakabilmesidir. Çoğu kişi, giriş yapması gerektiğinde hatırlayabilmek için son derece karmaşık şifreler kullanmaz. Sonuç olarak bu durum bir güvenlik açığı yaratır. Birçok saldırgan, nispeten basit olan şifreyi kırmak ve hesaba sızmak için kaba kuvvet kullanır. Otomasyon ve gelişmiş bilgisayar korsanlığı teknolojileri nedeniyle bu durum bugünlerde özellikle kolaylaşmıştır.

Diğer yandan SSH anahtarları, hesabınıza erişim sağlamak için çok daha güvenli bir yol sunar. Daha önce belirttiğimiz gibi, bu yöntem bir istemcinin kimliğini doğrulamak için bir genel anahtar ve bir özel anahtar kullanır. Genel anahtarı herkesle paylaşabilseniz de, özel anahtarı gizli tutmanız gerekir. Birlikte eşleştirildiklerinde, genel anahtar kimliğinizi doğrulamak için özel anahtarın şifresini çözer. Ayrıca, anahtar çiftinin üzerine bir parola ekleyerek korumayı katmanlandırabilirsiniz. Kılavuzun ilerleyen kısımlarında parola hakkında daha fazla konuşacağız. Ancak, parola olmasa bile, özel SSH anahtarınız yerel bilgisayarınızda son derece güvenli bir şekilde saklanır. Ağ, kısıtlı bir dizinde bulunan ve kısıtlı izinlerle desteklenen anahtara hiçbir zaman doğrudan erişemez.

SSH Anahtarları Oluşturuluyor

SSH anahtar çiftinizi oluşturmak için OpenSSH araç setine göz atmanız ve ssh-keygen aracını bulmanız gerekir. Bu, yaklaşık 2048 bit boyutunda bir SSH anahtar çifti oluşturmanıza olanak tanıyan özel bir yardımcı araçtır. Bu komutu çalıştırarak başlayın:

Bu, aşağıdaki mesajı görüntüleyecektir:

Bu mesaj, id_rsa adında bir özel anahtar ve id_rsa.pub adında bir genel anahtar oluşturacaktır. Bu noktada, anahtarı nereye yerleştirmek istediğinizi seçebilirsiniz. Enter tuşuna basarak varsayılan konumda kalmanızı öneririz. Varsayılan konuma bağlı kalmak, o sistemi kullanarak her giriş yaptığınızda sunucunun anahtarları otomatik olarak bulmasını ve doğrulamasını sağlar. Varsayılan konum, ana dizindeki ~/.ssh dizinidir. Farklı bir yer seçmeyi tercih ederseniz, konumu yazın.

Eski SSH Anahtarlarını Yeniden Yazma

Sisteminizde aynı anda yalnızca bir SSH anahtar çiftine sahip olabileceğinizi unutmamak önemlidir. Bu, sistemde daha önce bir anahtar çifti oluşturup kaydettiyseniz aşağıdaki mesajı göreceğiniz anlamına gelir:

Yeni SSH anahtar çiftinizi oluşturmaya ve kaydetmeye devam etmek için mevcut olanı silmelisiniz. Unutmayın: diskte zaten kayıtlı olan anahtarın üzerine yazarsanız, onu artık kimlik doğrulama amacıyla kullanamazsınız. Bu geri alınamaz bir işlemdir, bu nedenle eski anahtar çiftinin üzerine yazmak istediğinizden kesinlikle emin olun.

Parola Belirleme

Anahtarları dizinde kurduktan sonra, bir parola girmek isteyip istemediğiniz sorulacaktır:

Parola isteğe bağlıdır; geçmeyi tercih edebilirsiniz. Ancak, özel anahtarınızı disk üzerinde şifreleyerek ek bir güvenlik katmanı sağlar. Eğer bir parola kullanmayı seçerseniz, bu SSH anahtar çiftini kullanarak her oturum açmaya çalıştığınızda parolayı doğru girmeniz gerekecektir:

Son olarak, artık istemci kimliğini doğrulamak için kullanabileceğiniz SSH anahtarlarınıza sahip olmalısınız.

SSH Anahtarınızı Sunucu Hesabınıza Ekleme

Anahtarları kimlik doğrulama için kullanmadan önce, genel anahtarı uzak Linux sunucusuna eklemeniz gerekir. Bir sonraki adımda, CloudSigma sunucunuzu oluştururken bunu nasıl yapacağınızı göstereceğiz. İlk olarak, kopyalayıp yapıştırabilmek için genel SSH anahtarınızı bulmanız gerekir. SSH anahtar çiftinizi oluşturmak için yukarıdaki yöntemi kullandıysanız, aşağıdakini yazarak genel anahtarı bulabilirsiniz:

Bu, genel SSH anahtarının şu şekilde belirmesiyle sonuçlanacaktır:

Daha sonra kullanmak üzere bu değeri kopyalayın. CloudSigma ile bir sunucu oluştururken, sunucu boyutunu ve işletim sistemi imajını seçtikten sonra bir SSH anahtarı ekleme seçeneğiniz vardır:

single server creation

SSH anahtarını sunucunuza yerleştirmek için Ekle'ye tıklayın ve kopyaladığınız içeriği yapıştırın. Sonuç olarak, sunucunuzu her başlattığınızda, enjekte edilen SSH anahtarı zaten mevcut olacaktır.

Mevcut Bir Sunucuya Açık Anahtar Kopyalama

Yukarıdaki yöntem yeni bir sunucu oluştururken işe yarasa da, mevcut bir sunucuya bir SSH anahtarı yerleştirmek mümkün müdür? Cevap evet; elinizin altındaki araçlara bağlı olarak bunu yapmanın birden fazla yolu vardır.

SSH-Copy-ID Kullanımı

Bu, bir genel anahtarı kopyalamanın en basit ve en kolay yoludur. Tek ihtiyacınız olan, standart OpenSSH paketinde bulacağınız ssh-copy-id yardımcı aracıdır. Ancak bu yöntemi kullanmadan önce, sunucunuzda şifre tabanlı kimlik doğrulamanın etkinleştirildiğinden emin olun. Anahtarı kopyalamak için ssh-copy-id sözdizimini uygulayacak ve ardından bağlanmak istediğiniz uzak sunucuyu gireceksiniz. Ayrıca bağlandığınız hesabı da belirtmeniz gerekecektir. Anahtarınızın doğru konuma kopyalanması için hesaba şifre tabanlı erişiminizin olması gerekir. Komut şu şekilde görünmelidir:

Bu, ekranınızda aşağıdaki gibi bir mesajın belirmesine neden olabilir:

Bu durum genellikle o belirli uzak sunucuya ilk kez bağlanıyorsanız meydana gelir. Bu, sadece bilgisayarın sunucuyu tanıyamadığı anlamına gelir. Tek yapmanız gereken ‘yes’ yazıp Enter tuşuna basmaktır. Bunu yaptığınızda, araç açık anahtarınızı bulmak için hesabı tarayacaktır. Anahtarı bulduğunda, sizden hesap şifrenizi girmenizi isteyecektir:

Ardından, şifrenizi girebilirsiniz. Hesabınıza bağlandığınızda, araç ~/.ssh/id_rsa.pub anahtarının içeriğini kopyalayacak ve uzak hesabınızdaki ~/.ssh dizini altındaki authorized_keys dosyasına yapıştıracaktır. Ardından aşağıdaki mesajı göreceksiniz:

Bu, genel anahtarınızı mevcut uzak sunucunuza başarıyla kopyaladığınız anlamına gelir.

SSH Kullanarak

Bu, genel anahtarınızı bir sunucuya kopyalamak için oldukça geleneksel bir yöntemdir. ssh-copy-id aracına erişiminiz yoksa bunu kullanmanız tercih edilir. Yine, hesabınıza şifre tabanlı erişiminizin olması gerekir. Esasen yaptığınız şey, genel anahtarın içeriğini bilgisayarınızda bir çıktı olarak almak ve aralarında kurulan SSH bağlantısı aracılığıyla uzak sunucuya aktarmaktır. Bu amaçla kullanacağınız komut şu şekilde olmalıdır:

Gördüğünüz gibi, anahtarın sunucudaki ~/.ssh dizini içindeki authorized_keys dosyasına yerleştirilmesi gerektiğini belirttik. >> sembolünün kullanılması, anahtarların üzerine yazmak yerine yeni anahtarlar eklememizi de sağlar. Komutu çalıştırdıktan sonra bu mesajı görebilirsiniz:

Önceki mesaja benzer şekilde bu, bilgisayarın uzak ana bilgisayarı tanımadığı anlamına gelir. Devam etmek için ‘yes’ yazın ve Enter tuşuna basın. Şimdi hesap şifresini gireceksiniz:

Şifre doğrulandıktan sonra, anahtar belirtildiği gibi kullanıcı hesabınızdaki bir dosyaya kopyalanacaktır.

Manuel olarak

Uzak sunucudaki hesabınıza şifre tabanlı erişiminiz olmaması durumunda, açık anahtarı manuel olarak kopyalayabilirsiniz. Amaç, id_rsa.pub dosyasındaki değeri uzak cihazınızdaki ~/.ssh/authorized_keys dosyasına aktarmaktır. Zaten bildiğimiz gibi, id_rsa.pub anahtarının değerini şu komutu kullanarak görüntüleyebiliriz:

SSH açık anahtarınızın içeriği şu şekilde görünecektir:

Ardından, mevcut olan her türlü yolla uzak sunucudaki hesabınıza erişim sağlamanız gerekir. Giriş yaptığınızda, ~/.ssh dizininin mevcut olduğundan emin olmak için kontrol edin. Mevcut değilse, oluşturmak için aşağıdaki komutu çalıştırabilirsiniz:

Şimdi, id_rsa.pub dosyasının içeriğini uzak sunucudaki bu ~/.ssh dizininde bulunan authorized_keys dosyasına eklemek için bu komutu kullanabilirsiniz:

Bu komutta ‘public_key_string‘ yazmak yerine, daha önce cat ~/.ssh/id_rsa.pub komutunu çalıştırarak çıkardığınız anahtarın içeriğini girmeniz gerekecektir.

SSH Anahtarınızla Kimlik Doğrulama

Artık sadece SSH anahtarlarınızı kullanarak hesabınıza kolayca giriş yapabilirsiniz. Bu, sunucu hesabınıza erişmek için artık şifrenize ihtiyacınız olmadığı anlamına gelir. Giriş amacıyla genellikle kullandığınız kimlik bilgilerini kullanacaksınız:

Bu, aşağıdaki mesajın belirmesine neden olabilir:

Bu mesajı görürseniz endişelenmeyin. Bu, sadece yerel sistemin uzak ana bilgisayarı tanıyamadığı anlamına gelir. Bu durum genellikle ana bilgisayara ilk kez bağlanıyorsanız gerçekleşir. Tek yapmanız gereken ‘yes’ yazıp Enter tuşuna basmaktır. Önceki adımlardan bazılarına dönecek olursak, bir parola ifadesi uyguladıysanız, bunu girmeniz gereken yer burasıdır. Uygulamadıysanız, SSH anahtarları doğrulandıktan hemen sonra doğrudan hesabınıza giriş yaparsınız. Bu, yerel bilgisayardaki mevcut hesabınız üzerinden yeni bir kabuk oturumunun açılmasını tetikleyecektir.

Sunucunuzda Şifre Kimlik Doğrulaması Nasıl Devre Dışı Bırakılır?

SSH anahtarlarınızı nasıl kuracağınızı bildiğinize göre, parola kimlik doğrulamasını devre dışı bırakmanız gerekir. Kimlik doğrulama için SSH anahtarlarını kullanabiliyor olsanız bile, parola kimlik doğrulama işleminiz aktifse kaba kuvvet saldırılarına karşı hala savunmasızsınız demektir. Parola kimlik doğrulama mekanizmasını devre dışı bırakmadan önce, SSH anahtarı tabanlı kimlik doğrulama yapılandırmasının sunucudaki root hesabına ait olduğundan veya yapılandırılmış hesabın sudo erişimine sahip olduğundan emin olun. Bunu doğrulamanın nedeni, parolalar devre dışı bırakıldığında bile hesaba yönelik yönetici erişiminizi koruduğunuzdan emin olmaktır. Artık sunucu hesabınızda oturum açmak için bu SSH anahtarını kullanabilirsiniz. Bir sonraki adım, SSH daemon'ının yapılandırma dosyasını açmaktır:

Burada, aşağıdaki yönergeyi aramanız gerekir:

Bu satırın başındaki yorum işaretini kaldırmanız ve değeri aşağıdaki gibi ‘no’ olarak değiştirmeniz gerekir:

Bunu yapmak, şifre tabanlı kimlik doğrulamayı devre dışı bırakacaktır. Bitirdiğinizde dosyayı kaydedip kapatmanız yeterlidir. Son olarak, değişiklikleri uygulamak için cihazınızı yeniden başlatmanız gerekir. Bir Ubuntu veya Debian cihazı kullanıcısıysanız, şifre tabanlı girişi devre dışı bırakmak için aşağıdaki komutu da kullanabilirsiniz:

CentOS veya Fedora makinelerinde daemon'ınızın veya sshd'nin sunucuda yalnızca SSH tabanlı kimlik doğrulamasına izin verdiğinden emin olmak için şu komutu kullanın:

Sonuç

Tüm bu adımları tamamladıktan sonra, sunucunuzda SSH anahtar tabanlı kimlik doğrulamasını yapılandırmış ve çalıştırıyor olmalısınız.  Artık sunucularınızın güvende ve koruma altında olduğundan emin olabilirsiniz!

Keyifli Bilişimler!

author

Akshay Nagpal

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.