Ubuntu 20.04'e SSH Anahtarları Nasıl Kurulur?
Ubuntu 20.04'e SSH Anahtarları Nasıl Kurulur?

Ubuntu 20.04'e SSH Anahtarları Nasıl Kurulur?

0 Hisse senetleri
0
0
0
0

Ubuntu 20.04'e SSH Anahtarları Nasıl Kurulur?

giriiş

SSH veya Güvenli Kabuk, sunucuları yönetmek ve onlarla iletişim kurmak için kullanılan şifreli bir protokoldür. Bir Ubuntu sunucusuyla çalışırken, zamanınızın çoğunu sunucunuza SSH üzerinden bağlı bir terminal oturumunda geçirmeniz muhtemeldir. Ubuntu 20.04'e SSH Anahtarlarının nasıl yükleneceği konusunda bizi takip etmeye devam edin.

Bunda YardımBu yazıda, Ubuntu 20.04 kurulumunuz için SSH anahtarlarının kurulumuna odaklanacağız. SSH anahtarları, sunucunuza güvenli bir şekilde giriş yapmanızı sağlar ve tüm kullanıcılar için önerilir.

Yaratılış DijitalOkyanus Droplet, bilgisayarınızın SSH anahtarlarını anında eklemenize olanak tanır, böylece gizli ve güvenli bir şekilde bağlanabilirsiniz.

Adım 1 – Bir anahtar çifti oluşturun

İlk adım, istemci aygıtında (genellikle bilgisayarınızda) bir anahtar çifti oluşturmaktır:

$ ssh-keygen

Varsayılan olarak, ssh-keygen'in son sürümleri çoğu amaç için yeterince güvenli olan 3072 bitlik bir RSA anahtar çifti üretir (isteğe bağlı olarak daha büyük bir 4096 bitlik anahtar üretmek için -b 4096 bayrağını geçirebilirsiniz).

Komutu girdikten sonra aşağıdaki çıktıyı görmelisiniz:

Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):

Anahtar çiftini ana dizininizin /ssh. alt dizinine kaydetmek için Enter tuşuna basın veya alternatif bir yol belirtin.

Daha önce bir SSH anahtar çifti oluşturduysanız, aşağıdaki istemi görebilirsiniz:

Output
/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?

Anahtarı diske yazmayı seçerseniz, artık önceki anahtarı kullanarak kimlik doğrulaması yapamazsınız. (Evet) seçeneğini belirlerken çok dikkatli olun, çünkü bu geri döndürülemez yıkıcı bir işlemdir.

Daha sonra aşağıdaki bildirimi görmelisiniz:

Output
Enter passphrase (empty for no passphrase):

Burada isteğe bağlı olarak güvenli bir parola girebilirsiniz; bu şiddetle tavsiye edilir. Parola, yetkisiz kullanıcıların sisteme giriş yapmasını önlemek için ekstra bir güvenlik katmanı sağlar. Güvenlik hakkında daha fazla bilgi için, bir Linux sunucusunda SSH anahtar tabanlı kimlik doğrulamanın nasıl yapılandırılacağına dair eğitimimize bakın.

Daha sonra aşağıdakine benzer bir çıktı görmelisiniz:

OutputYour identification has been saved in /your_home/.ssh/id_rsa
Your public key has been saved in /your_home/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host
The key's randomart image is:
+---[RSA 3072]----+
|                .|
|               + |
|              +  |
| .           o . |
|o       S   . o  |
| + o. .oo. ..  .o|
|o = oooooEo+ ...o|
|.. o *o+=.*+o....|
|    =+=ooB=o.... |
+----[SHA256]-----+

Artık kimlik doğrulaması için kullanabileceğiniz bir genel ve bir özel anahtarınız var. Bir sonraki adım, SSH anahtar tabanlı kimlik doğrulamasını kullanarak oturum açabilmeniz için genel anahtarı sunucunuza yerleştirmektir.

Adım 2 – Genel anahtarı Ubuntu sunucusuna kopyalayın

Ubuntu ana bilgisayarında genel anahtarı kopyalamanın en hızlı yolu ssh-copy-id adlı bir araç kullanmaktır. Basitliği nedeniyle, bu yöntem mevcutsa şiddetle tavsiye edilir. İstemci makinenizde ssh-copy-id yoksa, bu bölümde sunulan iki alternatif yöntemden birini kullanabilirsiniz (parola tabanlı SSH üzerinden kopyalama veya anahtarı manuel olarak kopyalama).

ssh-copy-id kullanılarak ortak anahtarın kopyalanması

ssh-copy-id aracı birçok işletim sisteminde varsayılan olarak bulunur, bu nedenle yerel sisteminizde de kullanılabilir. Bu yöntemin işe yaraması için sunucunuza parola tabanlı SSH erişiminizin olması gerekir.

Bu aracı kullanmak için, bağlanmak istediğiniz uzak ana bilgisayarı ve parola tabanlı SSH erişiminizin olduğu kullanıcı hesabını belirtmeniz gerekir. Bu, SSH genel anahtarınızın kopyalanacağı hesaptır.

Bunun gibi:

$ ssh-copy-id username@remote_host

Aşağıdaki mesajı görebilirsiniz:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Bu, yerel bilgisayarınızın uzak ana bilgisayarı tanımadığı anlamına gelir. Yeni bir ana bilgisayara ilk kez bağlanıyorsunuz. Devam etmek için "evet" yazın ve ENTER tuşuna basın.

Araç daha sonra yerel hesabınızı tarayarak daha önce oluşturduğumuz id_rsa.pub anahtarını arayacaktır. Anahtarı bulduğunda, sizden uzak hesap parolanızı isteyecektir:

Output
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:

Şifreyi girin (güvenlik nedeniyle yazdıklarınız görüntülenmeyecektir) ve ENTER tuşuna basın. Araç, sağladığınız şifreyi kullanarak uzak ana bilgisayardaki hesaba bağlanacaktır. Ardından, ssh/id_rsa.pub./~ anahtarınızın içeriğini, uzak hesabın ssh./~ ana dizinindeki authorized_keys adlı bir dosyaya kopyalayacaktır.

Aşağıdaki çıktıyı görmelisiniz:

Output
Number of key(s) added: 1

Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

Bu noktada, id_rsa.pub anahtarınız uzak hesaba yüklendi. 3. adıma geçebilirsiniz.

SSH kullanarak ortak anahtarın kopyalanması

Eğer ssh-copy-id'niz yoksa ancak sunucunuzdaki bir hesaba parola tabanlı SSH erişiminiz varsa, anahtarlarınızı normal SSH yöntemini kullanarak yükleyebilirsiniz.

Bunu, yerel bilgisayarımızdaki SSH genel anahtarının içeriğini okumak ve bunu bir SSH bağlantısı üzerinden uzak sunucuya iletmek için cat komutunu kullanarak yapabiliriz.

Alternatif olarak, ssh./~ dizininin mevcut olduğundan ve kullandığımız hesap için doğru izinlere sahip olduğundan emin olabiliriz.

Daha sonra, girdiğimiz içeriği bu dizindeki authorized_keys adlı bir dosyaya çıktı olarak gönderebiliriz. İçeriğin üzerine yazmak yerine eklemek için << yönlendirme simgesini kullanacağız. Bu, daha önce eklenen anahtarları yok etmeden yeni anahtarlar eklememizi sağlar.

Komutun tamamı şu şekildedir:

$ cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

Aşağıdaki mesajı görebilirsiniz:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Bu, yerel bilgisayarınızın uzak ana bilgisayarı tanımadığı anlamına gelir. Yeni bir ana bilgisayara ilk kez bağlanıyorsunuz. Devam etmek için Evet yazın ve ENTER tuşuna basın.

Daha sonra sizden uzak kullanıcı hesabının şifresini girmeniz istenecektir:

Output
[email protected]'s password:

Şifreyi girdikten sonra, id_rsa.pub anahtarınızın içeriği uzak hesabın authorized_keys dosyasının sonuna kopyalanacaktır. Başarılı olursa, 3. Adıma geçin.

Ortak anahtarın manuel olarak kopyalanması

Sunucunuza şifre tabanlı SSH erişiminiz yoksa yukarıdaki işlemi manuel olarak tamamlamanız gerekecektir.

id_rsa.pub dosyanızın içeriğini uzak makinenizdeki ssh/authorized_keys./~ dosyasına manuel olarak ekliyoruz.

id_rsa.pub anahtarının içeriğini görüntülemek için yerel bilgisayarınıza şunu yazın:

# cat ~/.ssh/id_rsa.pub

Anahtarın içeriğini aşağıdaki gibi göreceksiniz:

Output
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

Uzaktaki sunucunuza, sizin için uygun olan herhangi bir yöntemi kullanarak erişin.

Uzak sunucudaki hesabınıza eriştikten sonra, ssh./~ dizininin mevcut olduğundan emin olmanız gerekir. Bu komut, gerekirse dizini oluşturacak veya mevcutsa hiçbir şey yapmayacaktır:

$ mkdir -p ~/.ssh

Artık bu dizinde authorized_keys dosyasını oluşturabilir veya değiştirebilirsiniz. id_rsa.pub dosyanızın içeriğini authorized_keys dosyasının sonuna ekleyebilir ve gerekirse şu komutu kullanarak oluşturabilirsiniz:

$ echo public_key_string >> ~/.ssh/authorized_keys

Yukarıdaki komutta public_key_string ifadesini, yerel sisteminizde çalıştırdığınız cat ~/.ssh/id_rsa.pub komutunun çıktısıyla değiştirin. ssh-rsa AAAA… ile başlamalıdır.

Son olarak ssh./~ dizininin ve authorized_keys dosyasının uygun izinlere sahip olduğundan emin olacağız:

$ chmod -R go= ~/.ssh

Bu, /ssh./~ dizini için tüm "grup" ve "diğer" izinlerini yinelemeli olarak kaldırır.

Bir kullanıcı hesabı için anahtarları ayarlamak amacıyla root hesabını kullanıyorsanız, ssh./~ dizininin kullanıcıya ait olması ve root'a ait olmaması da önemlidir:

chown -R sammy:sammy ~/.ssh

Bu eğitimde kullanıcımızın adı sammy'dir, ancak yukarıdaki komutta uygun kullanıcı adını kullanmalısınız.

Artık Ubuntu Server ile şifresiz kimlik doğrulaması yapabiliriz.

Adım 3 – SSH Anahtarlarını Kullanarak Ubuntu Sunucusunda Kimlik Doğrulama

Yukarıdaki adımlardan birini başarıyla tamamladıysanız, uzak hesap parolasını sağlamadan uzak ana bilgisayara giriş yapabilmeniz gerekir.

Temel süreç aynıdır:

$ ssh username@remote_host

Eğer bu sunuculara ilk defa bağlanıyorsanız (yukarıdaki son yöntemi kullanıyorsanız), aşağıdakine benzer bir şey görebilirsiniz:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Bu, yerel bilgisayarınızın uzak ana bilgisayarı tanımadığı anlamına gelir. Devam etmek için "evet" yazın ve ardından ENTER tuşuna basın.

Özel anahtarınız için bir parola belirtmediyseniz, hemen oturumunuz açılacaktır. Anahtarı oluştururken özel anahtar için bir parola belirttiyseniz, parolayı girmeniz istenecektir (güvenlik nedeniyle tuş vuruşlarınızın terminal oturumunda görüntülenmeyeceğini unutmayın). Kimlik doğrulamasından sonra, Ubuntu sunucusunda yapılandırılan hesapla sizin için yeni bir kabuk oturumu açılacaktır.

Anahtar tabanlı kimlik doğrulama başarılı olduysa, parola kimlik doğrulamasını devre dışı bırakarak sisteminizi daha da güvenli hale getirmeyi öğrenmeye devam edin.

Adım 4 – Sunucunuzda Parola Kimlik Doğrulamasını Devre Dışı Bırakın

Hesabınıza parola olmadan SSH kullanarak giriş yapabildiyseniz, hesabınızda SSH anahtar tabanlı kimlik doğrulamasını başarıyla yapılandırmışsınız demektir. Ancak, parola tabanlı kimlik doğrulama mekanizmanız hala etkin olduğundan, sunucunuz kaba kuvvet saldırılarına karşı hala savunmasızdır.

Bu bölümdeki adımları tamamlamadan önce, bu sunucudaki kök hesap için SSH anahtar tabanlı kimlik doğrulamayı veya tercihen sudo ayrıcalıklarına sahip kök olmayan bir hesap için SSH anahtar tabanlı kimlik doğrulamayı yapılandırdığınızdan emin olun. Bu adım, parola tabanlı oturum açma işlemlerini kilitlediğinden, yönetici erişimine sahip olmaya devam edebilmeniz çok önemlidir.

Uzak hesabınızın yönetici ayrıcalıklarına sahip olduğunu doğruladıktan sonra, SSH anahtarlarınızla (root olarak veya sudo ayrıcalıklarına sahip bir hesapla) uzak sunucunuza giriş yapın. Ardından, SSH Daemon yapılandırma dosyasını açın:

$ sudo nano /etc/ssh/sshd_config

Dosyanın içinde PasswordAuthentication adlı bir yönerge arayın. Bu satır, satırın başına # eklenerek yorum satırı haline getirilmiş olabilir. #'yi kaldırıp değerini no olarak ayarlayarak satırın yorum satırından çıkarın. Bu, hesap parolalarınızı kullanarak SSH üzerinden oturum açma olanağınızı devre dışı bırakacaktır:

/etc/ssh/sshd_config


. . .
PasswordAuthentication no
. . .

İşlem tamamlandıktan sonra, dosyayı kaydedip kapatmak için CTRL+X tuşuna, ardından dosyayı kaydetmeyi onaylamak için Y tuşuna ve son olarak nano'dan çıkmak için ENTER tuşuna basın. Bu değişiklikleri etkinleştirmek için sshd hizmetini yeniden başlatmamız gerekiyor:

$ sudo systemctl restart ssh

Önlem olarak, mevcut oturumunuzu kapatmadan önce yeni bir terminal penceresi açın ve SSH hizmetinin düzgün çalıştığını test edin:

# ssh username@remote_host

SSH servisinizin düzgün çalıştığını doğruladıktan sonra, tüm mevcut sunucu oturumlarını güvenle kapatabilirsiniz.

Ubuntu sunucunuzdaki SSH daemon'ı artık yalnızca SSH anahtar tabanlı kimlik doğrulamasına yanıt veriyor. Parola tabanlı oturum açmalar devre dışı bırakıldı.

Sonuç

Şimdi sunucunuzda SSH anahtar tabanlı kimlik doğrulamayı yapılandırmanız gerekiyor, bu sayede hesap parolası sağlamadan oturum açabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz

CentOS 6/7'ye IBSng nasıl kurulur

CentOS 6/7'de IBSng Kurulum Eğitimi Bu makalede, centOS 6/7'de IBSng kurulum eğitimi size yardımcı olmak için sağlanmıştır…

Bulut alanı

Bulut alanı nedir ve 2020'nin en iyi bulut depolama alanı hangisi? Bulut alanının kullanımının artmasıyla birlikte, bu...