SSH Key Nedir? SSH Key (Anahtar) Oluşturma İşlemi

E-posta Hosting Kampanya

SSH key; güvenli parola doğrulaması sağlayan bir anahtardır. SSH key; public ve private olmak üzere anahtar çifti halinde oluşturulmaktadır. Private key’in kimse ile paylaşılmaması ve kişiden başka birinin okuyamayacağı şekilde yetkilendirme yapılması gerekmektedir. Elde edilen anahtar çiftleri parmak izi gibi özel olmaktadır.

SSH Key’in Tanımı Nedir?

SSH anahtar; farklı şifreler girmek ve bu farklı şifreleri hatırlamak zorunda kalmamak için oluşturulan bir anahtardır. Kullanıcılara ait parmak izi niteliğinde olan bir anahtar olma özelliğini taşımaktadır. SSH bağlantısı kurulacak olan hedef sunucunun parola ile korunması durumunda, bağlantı kurulacağı her zaman baştan parola yazmak zorunda kalınabilmektedir. Dolayısı ile bağlantı sağlanan sunucu sayısının fazla olduğu, bu sunucuların her birinde de çok değişik şifrelerin kullanıldığı durumlarda; kullanıcının password manager kullanması ya da her şifreyi tek tek hatırlıyor olması gerekmektedir. Durumu zorlaştırmamak için ise SSH key kullanılmaktadır.

SSH key tanıtıldıktan sonra sunucular şifre talep etmemektedirler. Bağlantı sağlayacak olan kişinin parmak izi niteliğinde bir anahtar olduğu için işini kolaylaştırmaktadır. Ancak opsiyonel bir özellik olan SSH key ile tek bir anahtar kullanarak bütün sunuculara giriş yapabilmek her kişiye güvenilir gelmeyebilmektedir. Böyle durumlarda terminaller ile güvenlik sağlanabilmektedir. Ağ trafiğinin izlenmesi, doğrudan veya dolaylı yollardan gelebilecek saldırıların yaratacağı sorunlar düşünüldüğünde; SSH key ile hem pratik hem de güvenli bir yapı kurulabilmektedir. Belirli dönemlerde yenilenmesi gereken şifreleme örgüleri bir noktadan sonra tıkansa bile SSH key ile güvenli yapı oluşturulmaya devam edilebilmektedir.

SSH Key İle Neler Yapılabilmektedir?

SSH anahtarın kullanıldığı durumlar aşağıda belirtilmiştir:

  • Çok sayıda tedarikçinin veya geliştiricinin aralarında devamlı tek bir şifre paylaşmalarına gerek olmadan aynı sistem kullanıcısı olarak oturum açmalarına izin verilmesi SSH anahtar ile sağlanmaktadır.
  • Bütün geliştiricilerin ya da tedarikçilerin erişimlerinin iptal edilmesine gerek kalmadan sadece tek bir tanesinin erişiminin iptal edilmesini mümkün kılmaktadır.
  • Çok sayıda şifrenin yönetiminin sağlanmasına gerek kalmadan çok sayıda hesapta oturum açılmasını daha kolay hale getirmektedir.

Public Key Authentication Nedir?

Açık anahtar doğrulaması olarak da isimlendirilmektedir. Açık ve gizli anahtar çifti üzerinden işleyen yönteme verilen isimdir. Açık anahtarın paylaşılabilmesi mümkündür ve paylaşılmış olan herkes de bu açık anahtarı kullanabilmektedir. Verilerin şifrelenmesi için açık anahtar kullanılmaktadır. Şifrelemenin çözümlenmesi için ise gizli anahtar kullanılmaktadır. Oluşturulmuş anahtar çiftinde eğer gizli anahtar silinir ya da değiştirilir ise; bu durumda açık anahtarın da kullanılabilmesi mümkün olmamaktadır. Açık anahtar ile yapılan bilgi alışverişinin okunabilmesi gizli anahtar ile sağlanmış olmaktadır. Public key authentication’ın çalışma mantığı aşağıda açıklanmıştır:

  • Anahtar çifti oluşturulmaktadır.
  • Anahtar çiftlerinden public key bir kişiye ya da sunucuya verilmektedir.
  • Private key’in güvenlik amacı ile kimse ile paylaşılmaması gerekmektedir. Kimlik doğrulaması talep edildiğinde, public key’in çifti olan private key’e sahip olunduğunun kanıtlanabiliyor olması gerekmektedir.
  • Doğru private key’e sahip olunduğu kanıtlanır ise, login olunmasına izin verilmektedir.

SSH Key Oluşturma İşlemi İçin Gerekli Olanlar Nelerdir?

SSH anahtar oluşturmak için ihtiyaç duyulanlar aşağıdaki gibidir:

  • Yerel makineye erişim sağlanabilmelidir.
  • SSH key oluşturmak için uzak makineye erişilebiliyor olması gerekmektedir.
  • SSH bağlantısı için uygun bir terminal bulunmalıdır.

SSH Anahtarları Nasıl Edinilir?

SSH key edinmek için ilk etapta Linux/Unix sistemde yerel cihazın sahip olduğu terminal tipi ortamının kullanılması ve RSA anahtarının oluşturularak kurulması gerekmektedir. Terminale giriş yaptıktan sonra anahtar çifti oluşturmak için komut yazılmalıdır. Yerel makinede anahtar çifti oluşturmayı sağlayan komut şöyledir:

  • ssh-keygen -t rsa

Anahtar oluşturmak için komut girildikten sonra çıkan (/home/tautvydas/.ssh/id_rsa) anahtar üreticisinin varsayılan konumda anahtar çifti oluşturabileceği şekilde aynen bırakılabilmekte ve sadece Enter tuşuna basılabilmektedir. Sonrasında ekranda gözükecek olan iki soru ise şunlardır:

  • Enter passphrase (empty for no passphrase):
  • Enter same passphrase again:

İlerlemek için bu alanların doldurulması zorunlu değildir. Doldurmadan da uzaktaki sunucuda anahtarların ayarlanması ile beraber şifresiz oturum açılabilmektedir. Şifresiz bir şekilde oturum açılabilmesi için ssh kullanici@sunucuip komutu girilmelidir. Güvenliğe fazlası ile önem verenler ise parola girmeyi de tercih edebilmektedirler. Ancak parola girmek istenir ise, uzaktaki aygıt ile her bağlantı kurulacağında parola girilmesi gerekmektedir.

Bu işlemler yapıldığında terminal ekranında bir resim oluşmaktadır ve bu resim bu işlemi tekrarlayan herkeste farklı olmaktadır. Dolayısı ile anahtar parmak izi de aynı olmamaktadır. Oluşturulan anahtarlar private ve public olmak üzere iki adettir.

Windows İşletim Sisteminde SSH Key Nasıl Oluşturulur?

Windows’ta SSH anahtar oluşturma için takip edilecek adımlar aşağıda verilmiştir:

  • Putty programı yardımı ile Windows’ta SSH key oluşturulabilmektedir ve bunun için öncesinde Putty programının indirilmesi gerekmektedir.
  • İndirme işlemi tamamlandıktan sonra programdaki Generate butonuna tıklanmalıdır.
  • Generate butonuna tıklanması ile beraber kullanıcı için bir anahtar oluşturulmaktadır. Anahtarın oluşturulması ise uzun sürebilmektedir.
  • Key oluşturulduktan sonra işlemin sonuçlandığını gösteren bir ekran açılmaktadır ve bu ekranın en üst kısmında key bulunmaktadır. Oluşturulan key ssh-rsa ile başlamakta ve rsa-key-pcismi ile bitmektedir.
  • Oluşturulan anahtarın kullanılabilmesi için sırası ile Kontrol Paneli, Sunucular ve SSH Anahtarları kısımları açılmalıdır.
  • İlgili anahtara devamlı ihtiyaç duyulacağı için bu anahtara tanınması kolay olacak bir isim atanması gerekmektedir. Anahtarın hatalı olması durumunda bu isim verilmeye çalışılırken hata vermektedir.
  • SSH Anahtarını Ekle butonuna tıklandığında oluşturulan anahtar eklenmiş olmaktadır.

Elde Edilen SSH Anahtarlar Nelerdir?

Oluşturulan SSH keyler; id_rsa ve id_rsa.pub olmaktadır. Bu anahtarlar hakkında bilinmesi gerekenler ise şu şekildedir:

  • id_rsa özel anahtardır. Sadece yerel aygıtta olması ve bir başkasına verilmemesi gerekmektedir. Güvenlik açısından id_rsa dosyasına ekstra özen gösterilmesi gerekmektedir.
  • id_rsa.pub ise uzak makineye yüklenmesi gereken anahtardır. Bu anahtar sayesinde, uzaktaki bir sunucuda aynı proje kapsamında çalışan iki kişi public anahtarlarını aynı uzak sunucuya yerleştirebilmektedirler.

Public Anahtarı Uzak Sunucuya Kopyalama İşlemi Nasıl Yapılır?

Public key’in uzak sunucuya kopyalanması için öncelikle RSA anahtar çifti üretilmeli ve elde edilen public anahtarın uzak bir sunucuya yerleştirilmesi gerekmektedir. Public key’in uzak bir sunucunun authorized_keys dosyasına aktarılması için kullanılması gereken komut şudur:

  • ssh-copy-id kullanici@sunucuip

Komutta yer alan sunucu IP kısmına uzak sunucunun IP adresi yazılmalıdır. Bağlanılacak olan sunucunun kullanıcı adının ise komutta kullanıcı yazan alana yazılması gerekmektedir. Komutun girilmesi ile beraber ekrana bir uyarı mesajı çıkmaktadır. Uyarı mesajının sonunda devam etmek istenip istenmediğine dair soru olmaktadır ve bu soru kapsamında komut satırına yes yazıp enter tuşuna basılması gerekmektedir. Public anahtarın uzak sunucuya kopyalanma işleminin ilk kez yapıldığı durumlarda çıkan bir uyarıdır. Daha sonraki işlemlerde yes yazılmasına gerek kalmadan direkt uzak sunucu kullanıcısının şifresi istenmektedir.

Şifre girişi yapıldıktan sonra ekranda son bir uyarı çıkmaktadır ve sonrasında herhangi bir işlem yapılmasına gerek olmamaktadır. Dolayısı ile oluşturulmuş olan yeni public key’in uzaktaki sunucuya eklenme işlemi de tamamlanmış olmaktadır. SSH key oluşturulurken eğer bir parola ayarlanmaz ise; uzaktaki sunucuya giriş yaparken devamlı parola talep edilmemektedir.