5 Temmuz 2013 Cuma

SSH ile şifresiz login olma RSA Public key (1)

SSH bağlantısı telnet, rlogin gibi ağ üzerinden başka bir sunucuya bağlantı sağlayan bir protokoldür. Tamamen command-line’dan çalışan bu yapıda kullanıcı şifreleri dahil tüm iletişimi şifrelemeden gerçekleştirmek isterseniz SSH RSA Key oluştururarak kullanabilirsiniz.
Sunucu sayıları arttıkça şifrelerini de akılda tutmak zorlaştığından bu durumdan da kurtulmak için SSH RSA KEY kullanabilirsiniz.
Eğer siz de benim gibi durmadan linux makineler arasında veri transferi ya da başka nedenlerle login-logout oluyor ve bu nedenle her seferinde şifre girmekten bıkmış bir vaziyette iseniz o zaman ssh (secure shell) komutunun kimlik doğrulama (authentication) seçeneğini kullanabilirsiniz.
Bu yöntem, kısaca kişisel bir anahtar (key) oluşturulup, bu anahtarın bağlantı yaptığınız diğer makinelere kopyalanmasından oluşur. Kişisel anaktarınızın güvenliği açısından isteseniz kriptolama da kullanabilirsiniz. Şahsen her seferinde kriptoyu çözmek için araya bir de geçiş-kodu (passphrase) girmemek için ben kullanmıyorum. Zira makineler zaten şirketiçi ağda olduğu için fazla tehlike yok. Ama siz isterseniz kullanabilirsiniz.

Ben key üretmek için securecrt kullandığımda başarılı olamadım. Linux bir makinada (ben centos 6 kullandım) aşağıdaki gibi yaptığımda  üretilen key sorunsuz çalıştı.

Öncelikle ssh-keygen komutu ile public ve private key çiftimizi oluşturuyoruz:
Not:Bu işlemi hangi  kullanıcındayken yapıyorsak o kullanıcının home dizinin altındaki .ssh klasörünün altına koyar.
[user1@deneme ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user1/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):        ##### Eğer passphrase kullanacaksanız burada belirtmeniz gerekiyor!
Enter same passphrase again:
Your identification has been saved in /home/user1/.ssh/id_rsa.
Your public key has been saved in /home/user1/.ssh/id_rsa.pub.
The key fingerprint is:
f8:44:6f:4b:09:e7:1a:33:81:30:6d:b3:62:cc:5e:f6 user1@deneme

Daha sonra private key’ imizi bağlanmak istediğimiz makinelere kopyalıyoruz:
[user1@deneme ~]$ ssh-copy-id -i .ssh/id_rsa.pub user2@server
15
Password:               ###user2 isimli kullanıcı şifresi
Now try logging into the machine, with “ssh ‘user2@server’”, and check in:
.ssh/authorized_keys
to make sure we haven’t added extra keys that you weren’t expecting.

 server sunucusuna bağlandığımızda /home/user2/.ssh/authorized_keys dosyasına elimizdeki keyi görebiliriz. Artık server sunucusuna user2 kullanıcısıyla şifresiz bağlanabiliriz.
ssh-copy-id -i komutunun bir avantajıda .ssh ve authorized_keys dosyalarının 600 olması gereken izinlerinin otomatik yapmasıdır.
 Ben Server sunucunda  Ssh servisinde hiç bir ayar yapmadan  deneme sunucusu üzerinde  /home/user1/.ssh/id_rsa.pub   keyini kullanarak şifresiz bağlanabildim.

Securecrt kullanarak bu sunuculara key ile bağlanma:


SecureCRT içinde private key'in kullanılabilmesi için iki yöntem bulunuyor. İlk olarak tüm sunucularda kullanılmak üzere Global Options içinde bu anahtarı gösterebilirsiniz. Linux ve Solaris anahtarlarım farklı olduğu için bu yöntem bende işe yaramadı. Diğer yöntem olarak her sunucu için sunucu seçenekleri içinde anahtar belirtebilirsiniz.













Yukarıdaki resimde görülen kimlik doğrulama sıralamasını değiştirmeniz gerekiyor. Public Key ile çalışabilmek için ben "password" ve "public key"in öncelik sıralamasını değiştirdim.













Hiç yorum yok:

Yorum Gönder