Günümüzde teknolojinin gelişmesiyle beraber kullanılan cihazlar arttığı gibi bu cihazlardan oluşabilecek güvenlik açıkları da parolalarımız için bir tehdit olabiliyor. Aynı zamanda kullandığımız uygulamalar arttıkça parola ihtiyacımız da artıyor ve her yerde aynı parolayı kullanamız, parolamız keşfedildiği an tüm hesaplarımıza erişim sağlıyor. Bu yüzden özellikle bilmediğimiz bir ağda paketlerimizin dinlenme ihtimaline karşı daha dikkatli olmamız gerekiyor ve tabi ki her yerde aynı parolayı kullanmamamız gerekiyor...

 

SSH Anahtar Doğrulaması Nedir?

SSH bağlantısı sağladığımızda karşılaştığımız parola işleminini daha güvenli ve kolay bir hale getirmek için kullanılan doğrulama yollarından biri olan açık anahtar doğrulamasını kullanmamız daha doğru olacaktır.

Bu doğrulama için açık anahtar ve gizli anahtar oluşturmanız gerekiyor. Kısaca açık anahtar(public key) ile veri şifrelenir ve gizli anahtar(private key) bu veriyi çözer. Veriyi şifreleyen açık anahtar paylaşılabilir ve herkes tarafından okunabilir. Çünkü veri çözülmedikçe anlamlı bir veri gözükmez. Bu yüzden gizli anahtarımız kimseyle paylaşmamız ve kaybetmememiz gereken anahtarımızdır. Sebebi ise gizli anahtarımızı kaybettiğimiz zaman açık anahtarımızda işe yaramaz hale gelir. Aynı zamanda bilgisayarımızdan alınması durumunda, alan kişinin kullanmasını istemediğimizden dolayı aşağıda karşımıza gelen gizli anahtarımıza parola oluşturma işlemini atlamamalıyız.

SSH Anahtarımızı oluşturmak için:

ssh-keygen -t rsa

komutunu kullanmalıyız. Kullandıktan sonra bize oluşturulan anahtarın hangi isimle oluşmasını istediğini soracaktır. Buraya istediğimiz ismi giriyoruz:

hsonmez-rsa

Bu komut "~" dizininin içine varsayılan olarak 2048-bit RSA algoritması ile şifrelenmiş, anahtarımızın saklandığı bir dosya oluşturacaktır.

 

 

Eğer dosyanın oluşmasını istediğimiz yolu belirtmek istersek "-f" parametresini kullanabiliriz: (Bu parametreyi kullanırken bize oluşturmak istediğimiz ismi sormayacaktır. Çünkü bu ismi yolu gösterirken belirtiyoruz.)

ssh-keygen -f ~/.ssh/hsonmez-rsa -t rsa

(Burada kullandığımız "-f" parametresi dosya çıktısının bulunduğu yer ve ismini, "-t" parametresi algoritma tipini(dsa|ecdsa|ed25519|rsa) belirlediğimiz parametrelerdir.)

 

 

Dizinde iki dosya göreceksiniz:

Gizi anahtarımız(Private key): hsonmez-rsa
Açık anahtarımız(Public Key): hsonmez-rsa.pub

Birisi açık birisi gizli olmak üzere 2 adet dosyamız oluştu. Açık anahtarımızı sunucumuzda "~/.ssh/authorized_keys" dosyasına ekliyoruz ve işlem tamamlanıyor.

Sunucumuza anahtarımızı eklemek için:

ssh-copy-id -i hsonmez-rsa.pub hsonmez@123.321.45.6
(Burada kullandığımız "-i" parametresi "identity_file" anlamına geliyor.)

Sunucumuza anahtarı manuel olarak yüklemek istersek:
cat hsonmez-rsa.pub >> ~/.ssh/authorized_keys
komutlarıyla ekleyebiliriz.

Bir daha sunucuya SSH bağlantısı ile bağlanmak istediğimizde gizli anahtarımızı kullanmak için parola belirlemediysek bize parola sormayacaktır. (Eğer gizli anahtarımızı kullanabilmek için parola belirlediysek belirlediğimiz parolayı bizden isteyecektir.)

Belirli bir kullanıcıya anahtar yüklemek istersek:

Eğer SSH Anahtarını kullanmak isteyen kullanıcının parolası yoksa bu bağlantıyı sağlayıp kendi SSH Anahtarını yükleyemeyecektir. Bu yüzden ondan aldığımız SSH Anahtarını bizim manuel olarak yüklememiz gerekiyor. Bunun için aşağıdaki adımları uygulamalıyız:

Önce kullanıcının hesabına geçiş yapmalıyız:
su - hsonmez
Sonra ".ssh" adında bir dosya oluşturmalıyız: (Bu komutta kullandığımız "-m" parametresin oluşturduğumuz dosyaya yetki ataması yapmamızı sağlar.)
mkdir -m 700 ~/.ssh
Şimdi elimizdeki açık anahtarı(public key) "~/.ssh/authorized_keys" dosyasını oluşturup içine ekleyelim:
cat hsonmez-rsa.pub >> ~/.ssh/authorized_keys
Son olarak "~/.ssh/authorized_keys" dosyasının yetkilerini ayarlayalım:
chmod 600 ~/.ssh/authorized_keys
Dizin ve anahtarların yetkilerini ayarlamak için:
SSH-Keygen kendi bilgisayarımızdaki "~/.ssh" dizinimizi, açık ve gizli anahtarlarımızı otomatik olarak ayarlıyor fakat ayarları yine de buraya yazıyorum. (Sunucumuzdakini manuel ayarlamamız gerekebilir.)

"~/.ssh" dizininin yetkisi:
chmod 700 ~/.ssh

Gizli anahtar yetkisi:

chmod 600 ~/.ssh/hsonmez-rsa
Açık anahtar yetkisi:
chmod 644 ~/.ssh/hsonmez-rsa.pub
Sunucumuzdaki "~/.ssh/authorized_keys" dosyasının yetkisi:
chmod 600 ~/.ssh/authorized_keys
komutuyla yetkilendirebiliriz.

Eğer anahtarımız "~/.ssh" dizini içindeyse sunucuya bağlanmak için:
ssh hsonmez@123.321.45.6
Eğer gizli anahtar "~/.ssh" dizininde değil ise bağlantıyı kurmak için gizli anahtarın bulunduğu dizini "-i" parametresi ile göstermeliyiz.

Eğer aynı sunucuya belirli bir gizli anahtar ile bağlanmak istiyorsak:
ssh hsonmez@123.321.45.6 -i  hsonmez-rsa
komutularını kullanabiliriz. (Burada kullandığımız "-i" parametresi "identity_file" anlamına geliyor.)

Sözlük:
SSH Key: SSH Anahtarı
Public Key: Açık Anahtar

Private Key: Gizli Anahtar
Identity File: Kimlik Dosyası(Yani SSH Anahtarımız)

No comments

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Submitted comments will be subject to moderation before being displayed.