Bilgi işlem sektöründeyseniz özellikle gün içinde bir çok farklı Linux/Unix sunucuya erişiminiz varsa şifre hatırlamak, bunları saklamak, hem zulüm hem de güvenlik endişesi getiriyor. İnsan ister istemez bir süre sonra aynı yada benzer şifreleri kullanmaya başlıyor. Bunları anlatıyorum çünkü SSH Public Key ile kullanıcı doğrulamanın amacını anlatmak nasıl yapıldığını anlatmaktan daha önemli olmalı bence.
Yukarıda bu doğrulama yöntemini kullanmak için yapacağımız aksiyonları akış olarak çizdim.
1. Daha önceden Anahtar Çifti Oluşturulup Oluşturulmadığının Kontrolü
- Öncelikle Ana sunucuya SSH ile bağlanacağız (sunucuya direk erişiminiz varsa konsol üzerinden de bu işlemi yapabilirsiniz.)
ssh burak@ana_sunucu_host
- Bağlandığınız kullanıcı için sunucuda daha önce private key oluşturulmuş mu diye kontrol etmek için .ssh klasörüne gidin.
cd ~/.ssh
- Klasörün içinde id_rsa dosya çiftini görüyorsanız bu sunucuda daha önceden zaten private&public key oluşturulmuş demektir. Bu aşamada private&public key çiftini oluşturma işlemini atlayıp 3. adıma geçebilirsiniz.
Buraks-MacBook-Air:.ssh burakalakus$ ls -al -rw------- 1 burakalakus staff 1679 May 23 2015 id_rsa -rw-r--r-- 1 burakalakus staff 418 May 23 2015 id_rsa.pub
2. SSH Private & Public Key Çifti Oluşturma
- Ana sunucuya bağlıyken ssh-keygen -t rsa komudunu kullanarak SSH Key çiftimizi oluşturuyoruz. Komut verildikten sonra anahtara bir parola vermemizi isteyecektir. Boş bırakırsanız anahtara parola koruması vermemiş olursunuz. Parola vermenin artısı, anahtar çiftini her kullanmak istediğinizde size ek olarak bir de bu parolayı soracak olmasıdır.
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/burak/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/burak/.ssh/id_rsa. Your public key has been saved in /home/burak/.ssh/id_rsa.pub. The key fingerprint is: 4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 burak@ana_sunucu The key's randomart image is: +--[ RSA 2048]----+ | .oo. | | . o.E | | + . o | | . = = . | | = S = . | | o + = + | | . o + o . | | . o | | | +-----------------+
3. İstemci Makinaya Public Key’i İndirme
- Ana Sunucuya bağlanmak istediğiniz istemci makinada ssh-copy-id komudunu kullanacağız. Bu komut, ana sunucuya otomatik olarak bağlanıp, public key’i istemci makinaya indirecektir.
ssh-copy-id burak@ana_sunucu The authenticity of host 'ana_sunucu (12.34.56.78)' can't be established. RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'ana_sunucu' (RSA) to the list of known hosts. burak@ana_sunucu's password: Now try logging into the machine, with "ssh 'burak@ana_sunucu'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Yukarıda, başarılı bir sürecin çıktısını görüyorsunuz. Bu aşamadan sonra tek yapmanız gereken;
ssh burak@ana_sunucu
Şifre kullanmadan makinaya sorunsuzca bağlandığınızı göreceksiniz.
Geçmiş olsun.
Ocak 27, 2020 at 16:37
Hocam elinize sağlık çok sade şekilde yazmışsınız.
Ocak 27, 2020 at 23:49
Çok teşekkürler
Şubat 17, 2020 at 18:10
Teşekkür ederim