SSH Anahtar Kullanımı – İleri Düzey SSH

30 Temmuz 2008

SSH ile klavye etkileşimli (ing. keyboard interactive) oturum açma yöntemi dışında gizli / açık anahtar ikilisi (ing. private / public key pair) kullanılabilmektedir. Özellikle SSH ile erişilecek birkaç sunucu sistem olduğunda her birinin şifresini hatırlamak zor ve zahmetli olmaktadır. Daha pratik bir erişim için SSH anahtar ile erişim yöntemi kullanılabilir. Bunun için gizli ve açık olmak üzere bir anahtar ikilisi oluşturmalıdır. Açık olanı ulaşılmak istenen hedef sisteme yerleştirilmeli, gizli olanı da üçüncü şahıslardan çok iyi bir şekilde korunmalıdır. Bu yapılandırma hazır olduğunda tüm sistemlere SSH erişimi yapabilmek için sadece açık anahtarın şifresinin (ing. passphrase) hatırlanması yeterli olacak.

SSH anahtar ikilisi oluşturma:
SSH anahtar ikilisini oluşturmak için ssh ile beraber gelen ssh-keygen aracı kullanılmaktadır.

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kullanici/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/kullanici/.ssh/id_rsa.
Your public key has been saved in /home/kullanici/.ssh/id_rsa.pub.
The key fingerprint is:
52:eb:1c:ad:4f:76:a4:b6:a3:62:bf:95:0f:87:41:c2 kullanici@sistem

ssh-keygen herhangi bir parametre olmaksızın yukarıdaki gibi çalıştırıldığında ön tanımlı olarak SSHv2 için rsa türünde bir anahtar ikilisi üretmektedir. Yukarıda da görüldüğü gibi ~/.ssh/id_rsa gizli anahtar, ~/.ssh/id_rsa.pub da bu gizli anahtara ilişkin açık anahtarıdır. Açık anahtarı kaybedilirse üzülmeye gerek yok, gizli anahtarın yardımı ile tekrar oluşturulabilmektedir veya daha önce yerleştirildiği sunuculardan bir kopya olarak alınabilir:

$ ssh-keygen -y
Enter file in which the key is (/home/kullanici/.ssh/id_rsa):
Enter passphrase:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAzmrpzbnHCSARj4YkBy
SRlXrybTOCa5h6AoMe4onDqJYqmhgazNejwScCUXqLxfdT0bnvgds2
tgs9xoJGzvHHdiO59QJ0rUhMYE3q9F4c0u3WZf2sc2bax+S+Eeyz9y
82u9Hs6+J3ediQUoPaJCbqMeYRD55EZMc4ei2CB+eqhqk=

Gizli anahtardan açık anahtarını elde etmeye yarar. Gizli anahtarın şifresi (ing. passphrase) unutulduğu taktirde gizli anahtarı kurtarmanın ve tekrar kullanılabilir yapmanın yolu yoktur. Böyle bir durumda yeni bir anahtar ikilisi oluşturulmalı ve hedef sistemlere yeni açık anahtarı uygun şekilde dağıtılmalıdır.

Anahatar ikilisi hazır. Peki ya şimdi? Şimdi sıra açık anahtarının ilgili sistemlere yerleştirilmesinde. Hedef sisteme bir defaya mahsus klavye etkileşimli erişim yapılmalıdır. SSH ile uzak erişim gerçekleştiğinde

$ vi ~/.ssh/authorized_keys

~/.ssh/authorized_keys adında bir dosya editörle açılmalı ve yeni bir satır oluşturularak tek satır halinde SSH açık anahtarı bu satıra yapıştırılmalıdır. authorized_keys dosyasına yeni açık anahtarı tek satır olarak eklendikten sonra kaydedilerek sisteme olan erişim kesilebilir. Aynı sisteme aynı kullanıcı adı ile bir sonraki erişimde kullanıcı adına ilişkin şifre yerine size ait olan gizli anahtarın şifresi sorulacaktır. SSH ile erişmek istediğiniz uzak sistemdeki ilgili kullanıcıların ev dizinleri altına ~/.ssh/authorized_keys adında dosya oluşturulmalı veya varsa içerisine yeni bir satır olarak gizli anahtara ait olan açık anahtarı yapıştırılmalıdır.

Benzer şekilde kullanılması planlanan diğer sistemlere de erişim yaparak ~/.ssh/authorized_keys dosyası ilgili kullanıcılar için oluşturabilir, dosya varsa da açık anahtarı tek satır halinde girilerek kaydedilebilir. Önemli olan açık anahtarının tek satır halinde girilmesidir. Tek satırlık yapısı bozulduğu taktirde SSH anahtar ile erişim yöntemi çalışmayacaktır.

SSH gizli anahtarının şifresi değiştirilmek istendiğinde

$ ssh-keygen -p

komutu kullanılabilir. Eski şifre bir kere, yeni şifre de iki kere sorulacaktır. Bu işlemden sonra yeni şifre geçerli olacaktır.

SSH Ajanı Kullanımı adlı bir sonraki bölümde görüşmek üzere.

Etiketler: , , , , , , , , , ,

Yorum Yapın