SSH-keygen ile Anahtar Çiftinin Oluşturulması
“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
Anahtar çiftleri belirtilen dizinde (/root/Desktop/) oluşmuş olur.
ls -la id*
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
Oluşan anahtar içerikleri aşağıdaki gibidir.
cat /root/Desktop/id_rsa_anahtari
cat /root/Desktop/id_rsa_anahtari.pub
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
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
Ö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/
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/
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
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
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
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
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.