SSH KEY ile Linux sunuculara bağlanma






SSH nedir?

Bir ağ içerisinde güvenli şekilde uzak sunuculara erişim, dosya aktarımı ve komut çalıştırma görevler için 22 port üzeride çalışan bir erişim protokolüdür.

SSH Key nedir?

Linux sunucular arasında kimlik doğrulama işlemini gerçekleştirmek için kullanılan bir çift anahtardır.

Açık Anahtar (Public Key)

Sunucuya kopyalanan anahtardır. Bu anahtar, istemci tarafından gönderilen verileri çözmek için kullanılır. Güvenli bir şekilde paylaşılabilir.

Özel Anahtar (Private Key)

Yalnızca istemci tarafında bulunan ve kesinlikle paylaşılmaması gereken anahtardır. Bu anahtar, sunucu tarafından gönderilen verileri çözmek ve kimlik doğrulaması yapmak için kullanılır.

Neden SSH KEY ile bağlantı türünü seçmeliyiz?

  1. Daha Güvenli Bağlantı: Parola yerine anahtar çifti kullandığınızda, kaba kuvvet saldırılarına karşı daha dayanıklı olursunuz.

  2. Parolasız Erişim: SSH Key, bir kez ayarlandıktan sonra sunucuya giriş yapmak için parola yazma gereksinimini ortadan kaldırır.

  3. Otomasyon: SSH Key, otomasyon süreçlerinde(Ansible, CI/CD) parolasız erişim sağlayarak işlem sürelerini kısaltır.

SSH-KEY ile Linux sunuculara bağlanma

Çalışma Ortamı

BASH
Server1
IP: 192.168.1.101
Kullanıcı: linuxadmin
OS: Ubuntu 24

Server2
IP: 192.168.1.102
Kullanıcı: linuxadmin
OS: Ubuntu 24

SSH Key oluşturulması

BASH
$> ssh-keygen

# Çıktısı
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/linuxadmin/.ssh/id_ed25519): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/linuxadmin/.ssh/id_ed25519
Your public key has been saved in /home/linuxadmin/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:cMGQrpeIp/bO46T21GhLmay/JdqPglH0yVU8SBvkKFQ linuxadmin@sshYoutube-1
The key's randomart image is:
+--[ED25519 256]--+
|  ..Eo=Bo        |
| ..  o+o+.       |
| ..o.++ ..       |
|  ..+ .o         |
| . . o .S        |
|. ..+=o          |
| o o@.o          |
|. =@.=           |
| o+B%+.          |
+----[SHA256]-----+

SSH Key'in sunucuya kopyalanması

BASH
$> ssh-copy-id -i /home/linuxadmin/.ssh/id_ed25519.pub linuxadmin@192.168.1.102

# Çıktısı
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/linuxadmin/.ssh/id_ed25519.pub"
The authenticity of host '192.168.1.102 (192.168.1.102)' can't be established.
ED25519 key fingerprint is SHA256:7x/pm2GHR5hVWk190ClCXKrnQLhNvS3/hlIJNXDURmg.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
linuxadmin@192.168.1.102's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'linuxadmin@192.168.1.102'"
and check to make sure that only the key(s) you wanted were added.