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:
|
1 |
ssh-keygen |
Bu, aşağıdaki mesajı görüntüleyecektir:
|
1 2 |
Oluşturuluyor genel/özel rsa anahtar çifti. Girin dosya içinde hangi için kaydetmek bu anahtar (/home/username/.ssh/id_rsa): |
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:
|
1 2 |
/home/kullanıcı adı/.ssh/id_rsa zaten mevcut. Üzerine yaz (y/n)? |
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:
|
1 2 3 |
Oluşturuldu dizin '/home/username/.ssh'. Girin parola (boş için parolasız parola): Girin aynı parolayı tekrar: |
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sizin kimliğiniz sahip olmuş kaydedildi içinde /home/username/.ssh/id_rsa. Sizin açık anahtar sahip olmuş kaydedildi içinde /home/username/.ssh/id_rsa.pub. Şu anahtar parmak izi dir: a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 kullanıcı adı@uzak_sunucu The anahtar'ın randomart görseli şudur: +--[ RSA 2048]----+ | ..o | | E o= . | | o. o | | .. | | ..S | | o o. | | =o.+. | |. =++.. | |o=++. | +-----------------+ |
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:
|
1 |
cat ~/.ssh/id_rsa.pub |
Bu, genel SSH anahtarının şu şekilde belirmesiyle sonuçlanacaktır:
|
1 |
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNqqi1mHLnryb1FdbePrSZQdmXRZxGZbo0gTfglysq6KMNUNY2VhzmYN9JYW39yNtjhVxqfW6ewc+eHiL+IRRM1P5ecDAaL3V0ou6ecSurU+t9DR4114mzNJ5SqNxMgiJzbXdhR+j55GjfXdk0FyzxM3a5qpVcGZEXiAzGzhHytUV51+YGnuLGaZ37nebh3UlYC+KJev4MYIVww0tWmY+9GniRSQlgLLUQZ+FcBUjaqhwqVqsHe4F/woW1IHe7mfm63GXyBavVc+llrEzRbMO111MogZUcoWDI9w7UIm8ZOTnhJsk7jhJzG2GpSXZHmly/a/buFaaFnmfZ4MYPkgJD kullanıcı adı@örnek.com |
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:

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:
|
1 |
ssh-kopyala-kimlik kullanıcı adı@uzak_sunucu |
Bu, ekranınızda aşağıdaki gibi bir mesajın belirmesine neden olabilir:
|
1 2 3 |
The özgünlük in sunucu '111.111.11.111 (111.111.11.111)' ebilmek'değil olmak doğrulanmış. ECDSA anahtar parmak izi dir fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are siz emin siz istemek mek devam etmek bağlanmak (evet/hayır)? evet |
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:
|
1 2 3 |
/usr/bin/ssh-copy-id: INFO: çalışılıyor için oturum açma ile the yeni anahtar(lar), için filtrelemek ayıklamak herhangi bir olanları are zaten yüklenmiş /usr/bin/ssh-copy-id: INFO: 1 anahtar(lar) kaldı için olmak yüklenmiş -- eğer siz siniz istendiğinde şimdi bu dur için yüklemek the yeni anahtarlar kullanıcı adı@111.111.11.111'nın şifresi: |
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:
|
1 2 3 |
Sayı of anahtar(lar) eklendi: 1 Şimdi deneyin giriş yapmayı içine the makine, ile: "ssh 'username@111.111.11.111'" ve kontrol edin için emin olmak ki yalnızca the anahtar(lar) sizin istediğiniz idi eklendi. |
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:
|
1 |
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" |
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:
|
1 2 3 |
Belirli özgünlük ait ana bilgisayar '111.111.11.111 (111.111.11.111)' ebilmek'değil olmak doğrulanmak. ECDSA anahtar parmak izi dir fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Mısınız siz emin siz istemek için devam etmek bağlanmak (evet/hayır)? evet |
Ö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:
|
1 |
kullanıcı adı@111.111.11.111'ın/in şifre: |
Ş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:
|
1 |
cat ~/.ssh/id_rsa.pub |
SSH açık anahtarınızın içeriği şu şekilde görünecektir:
|
1 |
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test |
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:
|
1 |
mkdir -p ~/.ssh |
Ş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:
|
1 |
echo public_key_string >> ~/.ssh/authorized_keys |
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:
|
1 |
ssh kullanıcı adı@uzak sunucu |
Bu, aşağıdaki mesajın belirmesine neden olabilir:
|
1 2 3 |
Belirtilen özgünlük ait ana bilgisayar '111.111.11.111 (111.111.11.111)' ebilmek'değil olmak doğrulanmış. ECDSA anahtar parmak izi dir fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Mısınız siz emin siz istiyor to devam etmek bağlanmak (evet/hayır)? evet |
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:
|
1 |
sudo nano /etc/ssh/sshd_config |
Burada, aşağıdaki yönergeyi aramanız gerekir:
|
1 |
PasswordAuthentication |
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:
|
1 |
PasswordAuthentication no |
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:
|
1 |
sudo service ssh restart |
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:
|
1 |
sudo service sshd restart |
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!
Yorumlar
Henüz yorum yapılmamış. İlk siz olun.