SSH-KeyGen Aracı ile Linux Sunucusunda SSH Anahtarının Oluşturulması ve SSH Özel Anahtarı ile (Parola Olmadan) Oturum Açma

0
1575
views
Sistem yönetimi sırasında veya başka amaçlarla SSH yapılan sunuculara parola yerine SSH anahtarı ile erişim ihtiyacı olabilir. Bu yazıda SSH-keygen aracı ile bir anahtar çifti oluşturulacak ve özel anahtar kullanılarak hedef sistemin SSH servisine parola olmadan erişim sağlanacaktır.

SSH-keygen ile Anahtar Çiftinin Oluşturulması

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

“ssh-keygen” aracı ile varsayılan olarak RSA 1024 bitlik bir anahtar çifti (özel anahtar ve açık anahtar) oluşturulur.

ssh-keygen
/root/Desktop/id_rsa_anahtari

generating-ssh-key-pairs-and-connecting-to-ssh-server-without-password-by-using-ssh-keygen-on-linux-01

 

Anahtar çiftleri belirtilen dizinde (/root/Desktop/) oluşmuş olur.

ls -la id*

generating-ssh-key-pairs-and-connecting-to-ssh-server-without-password-by-using-ssh-keygen-on-linux-02

 

Not: Belirli bir dizin verilmezse, bu dosya çifti “~/.ssh/id_rsa” ve “~/.ssh/id_rsa.pub” olarak oluşurdu.

Bunun yanında rsa, rsa1, dsa, ecdsa, ed25519 gibi algoritma desteği de vardır. Örnek bir kullanım aşağıdaki gibidir.

ssh-keygen -t dsa -b 1024

generating-ssh-key-pairs-and-connecting-to-ssh-server-without-password-by-using-ssh-keygen-on-linux-03

 

Oluşan anahtar içerikleri aşağıdaki gibidir.

cat /root/Desktop/id_rsa_anahtari
cat /root/Desktop/id_rsa_anahtari.pub

generating-ssh-key-pairs-and-connecting-to-ssh-server-without-password-by-using-ssh-keygen-on-linux-04

 

Açık Anahtarın Tekrardan Oluşturulması

Açık anahtarın kaybolması durumunda, özel anahtar kullanılarak aynı açık anahtar oluşturulabilir.

cat /root/Desktop/id_rsa_anahtari.pub
ssh-keygen -y -f /root/Desktop/id_rsa_anahtari

generating-ssh-key-pairs-and-connecting-to-ssh-server-without-password-by-using-ssh-keygen-on-linux-05

 

Ancak, özel anahtar kaybolduğunda veya özel anahtarın parolası unutulduğunda, açık anahtar kullanılarak, özel anahtar elde edilemez.

 

Özel Anahtar Parolasının Değiştirilmesi

Özel anahtara parola verilmesi veya bu parolanın değiştirilmesi için “-p” komutu kullanılabilir.

ssh-keygen -p -f /root/Desktop/id_rsa_anahtari -N YeniParola123
ssh-keygen -p -f /root/Desktop/id_rsa_anahtari -P YeniParola123 -N EnYeniParola123

generating-ssh-key-pairs-and-connecting-to-ssh-server-without-password-by-using-ssh-keygen-on-linux-06

 

Özel anahtarın parolasının, parola politikasına uygun ve güçlü olarak belirlenmesi tavsiye edilmektedir.

 

“scp” Aracı ile Açık Anahtarın SSH Sunucusuna Aktarılması ve Parolasız Erişimin Sağlanması

Parolasız bağlantı için oluşturulan açık anahtarın SSH sunucusuna aktarılması gerekmektedir. Açık anahtar “~/.ssh/authorized_keys” dosyasına tek satır olarak kaydedilecektir. Eğer böyle bir dosya ve dizin yoksa, belli okuma/yazma/çalıştırma hakları ile oluşturulmalıdır.

ls -la
mkdir .ssh
chmod 700 .ssh
echo “” > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
ls -la
ls -la .ssh/

generating-ssh-key-pairs-and-connecting-to-ssh-server-without-password-by-using-ssh-keygen-on-linux-07

 

Oluşturulan açık anahtar, 100.100.200.7 SSH sunucusuna aktarılması gerekir. Bu dosya SSH sunucusunun herhangi bir dizine gönderilebilir. Aşağıdaki örnekte; parolasız olarak (SSH özel anahtarı ile) bağlanılmak istenen kullanıcının (yenikullanici adlı kullanıcı hesabı) ev dizini altındaki .ssh klasörüne aktarılmıştır.

scp /root/Desktop/id_rsa_anahtari.pub yenikullanici@100.100.200.7:/home/yenikullanici/.ssh/

generating-ssh-key-pairs-and-connecting-to-ssh-server-without-password-by-using-ssh-keygen-on-linux-08

 

Not: Yukarıdaki aktarım sırasında “yenikullanici” hesabının parolası girilir. Daha sonraki erişimlerde ise parola kullanımına gerek kalmayacaktır.

“scp” komutunun başarılı bir şekilde çalışması sonucunda dosyanın aktarıldığı görülmektedir.

ssh yenikullanici@100.100.200.7
cd .ssh/
ls -la

generating-ssh-key-pairs-and-connecting-to-ssh-server-without-password-by-using-ssh-keygen-on-linux-09

 

Son olarak aktarılan bu dosya içeriği authorized_keys dosyası içeriğine tek satır olarak kopyalanır.

cat id_rsa_anahtari.pub > authorized_keys
cat authorized_keys
wc -l authorized_keys

generating-ssh-key-pairs-and-connecting-to-ssh-server-without-password-by-using-ssh-keygen-on-linux-10

 

Böylece SSH sunucusuna, “yenikullanici” hesabı olarak, parola sorulmadan erişim sağlanabilir.

ssh -i /root/Desktop/id_rsa_anahtari yenikullanici@100.100.200.7

generating-ssh-key-pairs-and-connecting-to-ssh-server-without-password-by-using-ssh-keygen-on-linux-11

 

Not: Özel anahtara (/root/Desktop/id_rsa_anahtari) parola verilmemişti. Eğer bu anahtara parola verilmiş olunsa idi, özel anahtar parolası (“yenikullanici” hesabına ait parola değil) sorulurdu. Eğer özel anahtar parolasının verilmiş olması durumunda bu parolanın her kimlik doğrulama sırasında sorulmaması isteniyorsa, “ssh-agent” ve “keychain” çözümleri kullanılabilir. Ayrıntılı bilgi için bakınız: http://e-bergi.com/y/SSH-Anahtar-Yonetimi veya http://linux.yorenet.com/?hn=483

 

“ssh-copy-id” Aracı ile Açık Anahtarın SSH Sunucusuna Aktarılması ve Parolasız Erişimin Sağlanması

Açık anahtarın hedef sistemin (100.100.200.7), hedef kullanıcısının (“yenikullanici”) hedef dosyasına (/home/yenikullanici/.ssh/authorized_keys) otomatik olarak kopyalanması için “ssh-copy-id” aracı kullanılabilir. Böylece bağlantının sağlanabildiği ve bu açık anahtarın belirtilen hedefe (/home/yenikullanici/.ssh/authorized_keys) kopyalandığı görülmektedir.

ssh-copy-id -i /root/Desktop/id_rsa_anahtari yenikullanici@100.100.200.7
ssh yenikullanici@100.100.200.7 -i /root/Desktop/id_rsa_anahtari
cat .ssh/authorized_keys

generating-ssh-key-pairs-and-connecting-to-ssh-server-without-password-by-using-ssh-keygen-on-linux-12

 

Parola ile Erişimin Kapatılması

Parola ile erişimin iptal edilerek sadece özel anahtar ile erişimin etkinleştirilmesi için /etc/ssh/sshd_config dosyasında bir takım ayarlar yapılması gerekebilir. Bu ayarlar aşağıdaki gibidir.

  • RSAAuthentication yes –> RSA ile kimlik doğrulama etkinleştirilir.
  • PubkeyAuthentication yes –> Açık anahtar ile kimlik doğrulama etkinleştirilir.
  • PermitRootLogin without-password –> “root” kullanıcısının parola ile giriş yapması engellenerek, açık anahtar ile kimlik doğrulaması etkinleştirilir.
  • PasswordAuthentication No –> Genel olarak bir kullanıcının parola ile giriş yapması engellenerek, açık anahtar ile kimlik doğrulaması etkinleştirilir.

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.