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 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.
Aç 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ıngirmek
. - Ş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ğerleriniHayı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.