Ubuntu 20.04'te SSH Anahtarları Nasıl Eklenir

SSH anahtarlarını kullanarak uzak Ubuntu sunucunuza parolasız güvenli bir oturum açın

SSH, bir istemci bilgisayarın uzak bir sunucuya bağlanmasına ve iletişim kurmasına yardımcı olan güvenli bir istemci-sunucu ağ protokolüdür. SSH bağlantısı, terminalde yazılan komutların şifreli bir kanal üzerinden uzak sunucuya gönderilmesini sağlar.

Uzak sunucuya bağlanmak için kullanılan iki tür kimlik doğrulama mekanizması vardır, parola tabanlı kimlik doğrulama (kaba kuvvet saldırılarına eğilimli) ve SSH Anahtarları tabanlı kimlik doğrulama (ki bu çok güvenlidir).

SSH anahtar tabanlı kimlik doğrulamada, istemci bilgisayarda ortak anahtar ve özel anahtar olarak adlandırılan bir anahtar çifti oluşturulur. Bu ortak anahtarın bir kopyası uzak sunucuda kullanıma sunulur. Bir istemci sunucuya bir bağlantı isteği gönderdiğinde, sunucu rastgele bir dize oluşturur ve bunu ortak anahtarı kullanarak şifreler. Bu dizenin şifresi yalnızca istemci bilgisayarda bulunan özel anahtar kullanılarak çözülebilir. Bu yöntem, sunucuya yalnızca özel anahtarı içeren istemciler tarafından erişilebilmesini sağlar.

Bu kılavuzda, Ubuntu 20.04 LTS sunucusunda SSH Anahtarlarının nasıl kurulacağını göreceğiz.

Bilgisayarınızda mevcut herhangi bir SSH Anahtarınız olup olmadığına bakın

Bilgisayarınızda zaten bir SSH Anahtar Çifti olup olmadığını kontrol etmek için terminalinize bu komutu yazın.

ls -l ~/.ssh/id_*.pub

Yukarıdaki komut dönerse Böyle bir dosya ya da dizin yok veya Hiçbir sonuç bulunamadı, o zaman SSH Anahtar çifti yok demektir.

Mevcut bir SSH anahtar çiftiniz varsa, iki uzak sunucuya erişmek için aynı anahtar çiftini kullanabilir veya farklı ada sahip farklı bir anahtar çifti de oluşturabilirsiniz. Bir sonraki adıma geçelim ve her iki durum için de SSH anahtarlarının nasıl oluşturulacağını görelim.

İstemci Bilgisayarda SSH Anahtarları Oluşturma

Bilgisayarınızda yeni bir SSH anahtar çifti oluşturmak için aşağıda gösterildiği gibi komutu yazın.

ssh-keygen

Varsayılan olarak, SSH anahtarları 2048 bittir. Daha iyi güvenlik için, daha yüksek bitli SSH anahtarları oluşturmak istiyorsanız aşağıdaki komutu kullanın.

ssh-keygen -b 4096

Komut başarılı bir şekilde çalışırsa, ekranınızda aşağıdaki mesaj sorulur.

genel/özel rsa anahtar çifti oluşturma. Anahtarın kaydedileceği dosyayı girin (/home/harshit/.ssh/id_rsa):

Şimdi, bilgisayarınızda mevcut herhangi bir SSH anahtar çiftiniz yoksa, o zaman sadece tuşuna basın. Girmek, ancak mevcut bir SSH anahtarınız varsa, anahtarı aşağıda gösterildiği gibi farklı bir dosya adıyla kaydedin.

Anahtarın kaydedileceği dosyayı girin (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx

değiştirin xxx Aşağıda gösterildiği gibi uygun bir adla dosya adının sonunda ve Girmek.

Anahtarın kaydedileceği dosyayı girin (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1

Bir sonraki istem, rastgele uzunlukta bir parola girmenizi isteyecek, cihazınızda iki seviyeli güvenlik sağlayacaktır.

Parola girin (parola yoksa boş): Aynı parolayı tekrar girin:

Bu parolayı girmek, bir kişi özel anahtarınıza erişse bile bu parola olmadan uzak sunucunuza erişemeyeceğini garanti eder.

Tüm işlem tamamlandığında, ekranınızda aşağıdaki mesaj belirir.

ssh-keygen -b 4096 Tüm süreç SSH anahtarı oluşturma işlemi tamamlandığında, ekranınızda aşağıdaki mesaj belirir.

SSH Anahtarları sisteminizde oluşturulmuştur. Şimdi ortak anahtarı uzak sunucuya kopyalamanın zamanı geldi.

Genel anahtarı Uzak Ubuntu Sunucusuna kopyalama

Genel anahtarı uzak sunucuya kopyalamanın en kolay ve en hızlı yöntemi, ssh-kopya-kimliği Yarar. Ancak bu yardımcı program herhangi bir nedenle makinenizde mevcut değilse, bu bölümde verilen diğer yöntemleri de kullanabilirsiniz.

ssh-copy-id yardımcı programını kullanma

bu ssh-kopya-kimliği yardımcı program varsayılan olarak Ubuntu makinenizde bulunur ve genel anahtarı cihazınızdan uzak Ubuntu makinenizin uygun dizinine kopyalar.

Genel ssh anahtarını kopyalamak için, aşağıda gösterildiği gibi terminalinize komutu yazmanız yeterlidir.

ssh-copy-id kullanıcıadı@hostname

değiştirin Kullanıcı adı ve ana bilgisayar adı yukarıdaki komutta sunucunuzun kullanıcı adı ve ana bilgisayar adı ile.

Host cihazınıza ilk kez bağlanıyorsanız, terminalinizde aşağıdaki mesaj görünecektir. Evet ve bas Girmek.

Ana makinenin '172.105.XX.XX (172.105.XX.XX)' gerçekliği belirlenemiyor. ECDSA anahtar parmak izi xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx'dir. Bağlanmaya devam etmek istediğinizden emin misiniz (evet/hayır)? Evet

Şimdi ssh-kopya-kimliği yardımcı program adındaki dosyayı tarar id_rsa.pub genel SSH anahtarını içeren. Tarama işlemi tamamlandıktan sonra, aşağıda gösterildiği gibi uzak sunucunuzun şifresini girmenizi isteyecektir. Şifreyi yazın ve tıklayın Girmek.

/usr/bin/ssh-copy-id: INFO: önceden kurulu olanları filtrelemek için yeni anahtar(lar)la oturum açmaya çalışılıyor /usr/bin/ssh-copy-id: INFO: 1 anahtar(lar) ) yüklenmeye devam ediyor - şimdi istenirse, [email protected]'nin parolasını yeni anahtarları yüklemeniz gerekir:

Anahtar eklendiğinde, terminalinizde çıktı olarak aşağıdaki mesaj görünecektir.

Eklenen anahtar(lar)ın sayısı: 1 Şimdi makinede "ssh '[email protected]'" ile oturum açmayı deneyin ve yalnızca istediğiniz anahtar(lar)ın eklendiğinden emin olun.

İstemci bilgisayarınızda birden fazla SSH anahtarınız varsa, uygun genel anahtarı uzak bilgisayarınıza kopyalamak için aşağıda gösterilen düzende komutu yazın.

ssh-copy-id -i id_rsa_xxx.pub kullanıcıadı@host

💡 İpucu

Terminalde yazarken dosya adının sonuna .pub koymayı unutmayınız.

Ortak Anahtarın borulama yöntemiyle kopyalanması

Eğer terminalde aşağıdaki komutu yazın ssh-kopya-kimliği yardımcı program mevcut değil. Bu komut biraz daha uzun görünebilir ancak uygun şekilde çalışıyor.

kedi ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && ~/.ssh/yetkili_anahtarlara dokunun && chmod -R go= ~/.ssh && cat >> ~/.ssh/yetkili_anahtarlar"

Yer değiştirmek uzak kullanıcı adı ve sunucu IP adresi kullanıcı adınız ve IP adresiniz ile.

Bilgisayarınızda birden fazla SSH anahtarınız varsa, bunları değiştirin. id_rsa.pub seçtiğiniz genel SSH anahtar dosyasıyla. Örneğin, id_rsa_client_1.pub.

İstendiğinde uzak kullanıcı şifresini yazın ve tuşuna basın. Girmek.

[email protected] şifresi:

Parolayı yazdıktan sonra, id_rsa.pub dosyaya kopyalanacak yetkili_anahtarlar Uzak sunucunun dosyası.

Genel Anahtarı manuel olarak kopyalama

Parola doğrulama yoluyla uzak sisteminize erişiminiz olmadığında bu yöntemi kullanın.

id_rsa.pub kullanarak dosya kedi terminalde komut. Ayrıca bir metin düzenleyiciden de açabilirsiniz, amaç sadece dosyanın içeriğini kopyalamaktır.

kedi ~/.ssh/id_rsa.pub

Dosyanın içeriği aşağıda gösterildiği gibi görünecektir.

SSH-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6HY / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH sizin_adiniz @ your_PC

Şimdi, uzak sunucunuza giriş yapın ve aşağıda gösterilen komutu kullanarak kopyalanan içeriği yapıştırın. değiştirin yukarıdaki_string kopyalanan içerikle.

echo yukarıdaki_string >> ~/.ssh/yetkili_anahtarlar

Birden çok SSH Anahtarını Yapılandırma (Opsiyonel)

Bu adım, istemci bilgisayarlarında birden çok SSH Anahtarı kurulumuna sahip kişiler içindir. Yalnızca bir SSH Anahtar kurulumunuz varsa bu bölümü atlayın.

Birden çok SSH Anahtarını yönetmek için şimdi bir yapılandırma içindeki dosya .ssh aşağıda gösterilen komutu kullanarak dizin.

cd ~/.ssh vim yapılandırması

Tip Bence komut moduna girmek ve aşağıdaki örnekte gösterildiği gibi birden çok ana bilgisayarın ayrıntılarını yazmak için:

Ana bilgisayar uzak-ubuntu-sunucu Ana Bilgisayar Adı 172.105.XX.XX Kullanıcı kök IdentityFile ~/.ssh/id_rsa_client_1 Ana bilgisayar uzak-ubuntu-sunucu Ana Bilgisayar Adı 172.106.XX.XX Kullanıcı kök IdentityFile ~/.ssh/id_rsa_client_2

Benzer şekilde, diğer uzak sunucuların ayrıntılarını ve anahtarlarını yazın. İşlem tamamlandığında tuşuna basın. ESC ve :wq kaydetmek ve çıkmak için.

Artık, istemci bilgisayarda hem tekli hem de birden çok SSH Anahtarına sahip olmak için sonraki işlemler aynıdır.

SSH anahtarlarını kullanarak uzak sunucunuza giriş yapın

Genel anahtarınızı kopyalama işlemi tamamlandıktan sonra, aşağıda gösterildiği gibi komutu yazarak uzak sunucunuza giriş yapın.

ssh remote_username@server_ip_address

Anahtar çiftini oluştururken parolayı verdiyseniz, girmeniz istenecektir. Kimlik doğrulama işlemi tamamlandıktan sonra yeni bir oturum açılacaktır.

Artık uzak sunucunuzda SSH anahtarlarına dayalı kimlik doğrulamasını başarıyla yapılandırdınız. Ancak, sunucunuzda parola tabanlı kimlik doğrulama hala etkindir, bu, daha uzak sunucunuzun hala kaba kuvvet saldırılarına açık olduğu anlamına gelir.

Şimdi, uzak sunucumuzdan parola tabanlı oturum açma mekanizmasını tamamen devre dışı bırakacağız.

Parola tabanlı Oturum Açma Mekanizmasını devre dışı bırakın

Herhangi bir değişiklik yapmadan önce, uzak hesabınız için root kullanıcısının veya sudo etkinleştirilmiş herhangi bir kullanıcının, SSH anahtar tabanlı kimlik doğrulama sistemini kullanarak sunucunuza erişimi olduğundan emin olun. Bu adım, parola tabanlı oturum açmayı tamamen kilitleyecek veya devre dışı bırakacaktır, bu nedenle en az bir kullanıcı kök ayrıcalığının SSH anahtarı aracılığıyla sunucuya erişimi olması çok önemlidir.

Uzak Ubuntu sunucunuza giriş yapın ve aşağıda gösterilen komutu yazın.

sudo vim /etc/ssh/sshd_config
  • basmak ESC, / ve 'PasswordAuthentication' yazın ve tıklayın girmek.
  • Şimdi basın Bence ve "PasswordAuthentication evet" değerini "PasswordAuthentication hayır" olarak değiştirin.
  • basmak ESC ve "ChallengeResponseAuthentication", "UsePAM" öğesini bulmak için yukarıdaki işlemi tekrarlayın ve değerlerini Hayır ilave olarak.
PasswordAuthentication yok ChallengeResponseAuthentication yok UsePAM yok

Tüm değerler ayarlandıktan sonra Hayır, basmak ESC, tip :wq ve vur girmek.

Tüm değişiklikleri etkinleştirmek için ssh Aşağıdaki komutu kullanarak hizmet.

sudo systemctl ssh'yi yeniden başlat

Şimdi bilgisayarınızda yeni bir terminal penceresi açın ve mevcut oturumu kapatmadan önce SSH Anahtarı kimlik doğrulamanızın düzgün çalıştığını doğrulayın.

Doğrulama işlemi tamamlandıktan sonra, çalışan tüm oturumları kapatın.

Artık Ubuntu 20.04 sunucumuzda SSH Anahtarı tabanlı kimlik doğrulamasını başarıyla yapılandırdık. Artık hiç kimse parola tabanlı bir oturum açma mekanizması kullanarak sunucunuzda oturum açamaz.