SSH Yapılandırması

Uzak Sunucuda SSH Paketinin Kurulması

Kurulan uzak sunucuda kimi zaman SSH paketi yüklü olmayabilir. Bu sebepten ötürü de sunucuya SSH ile bağlanmak imkansızdır. Öncelikle karşı sunucuya aşağıdaki komutlar yardımı ile SSH paketi yüklenmeli ve parolasız bağlantı için gerekli dizin ve dosyalar oluşturulmalıdır.

sudo apt update 
sudo apt install ssh
cd 
mkdir .ssh
cd .ssh
touch authorized_keys known_hosts config

SSH ile Uzaktan Bağlantı Kurmak

Kurduğumuz sunucuya kişisel bilgisayarımızdan bağlanmak için Türkçe anlamı Güvenli Kabuk Protokolü olan SSH komutunu kullanacağız.

ssh username@serverip    

SSH komutunu kullanırken username yerine sunucuya bağlanmak istediğiniz kullanıcı adını, serverip yerine ise sunucu parolası yazılması gerekmektedir.

Bu komutu çalıştırıp uzak sunucudaki kullanıcı parolasını girildiğinde, artık kişisel bilgisayar üzerinden belirtilen sunucuya komut gönderilebilir.

SSH Konfigürasyon Ayarlarının Yapılması

SSH sunuculara ve bilgisayarlara uzaktan bağlantı yapılmasını sağlayan bir araçtır. SSH kişisel bilgisayar üzerinde konfigüre edilmesi ve sunuculara kişisel bilgisayarın tanıtılması yardımı ile parolasız ssh bağlantısı yapılması mümkündür.

Config dosyasının düzenlenmesi

Windows üzerinde C:\Users\username\ .ssh\config , GNU/Linux sistemlerde ise /home/username/.ssh/config dizininde bulunan konfigürasyon dosyası sık olarak bağlanılan sunucuların bağlantı ayarlarının özelleştirilmesi için sıkça kullanılmaktadır. Örnek bir konfigürasyon dosyasını inceleyelim.

Host limanmys
  HostName 192.168.1.10
  User liman

Host dc1
  HostName 192.168.1.11
  User server

Host dc2
  HostName 192.168.1.12
  User server

Temel anahtar kelimeleri tanıyalım.

  • Host : Sunucu için özgürce koyabileceğimiz bir isimdir. Örneğin Liman sunucusu için limanmys ya da limansunucu tercih edilebilir.

  • HostName : Sunucunun ip adresidir.

  • User : Sunucuya hangi kullanıcı ile bağlanılmak isteniyorsa, o kullanıcı verilmelidir. Liman sunucusu için liman tercih edilebilir.

Bu anahtar kelimeler dışında port vs. gibi başka ayarlar da bulunsa da, temel olarak bu anahtar kelimeler ile SSH konfigürasyon dosyası özelleştirilebilir.

SSH Anahtarı ile Sunucuya Parolasız Erişmek

Kişisel bilgisayarınız üzerinde (Windows ya da bir GNU/Linux dağıtımı),

ssh-keygen

komutu ile ssh anahtarı oluşturulabilir. SSH anahtarını bir parola ile oluşturmak mümkündür ancak parola konulmazsa gönderilen sunuculara parolasız erişim imkanı tanır.

ssh-keygen
Enter file in which to save the key (C:\Users\username/.ssh/id_rsa):
Enter same passphrase again:
Your public key has been saved in C:\Users\username/.ssh/id_rsa.pub.
SHA256:*************************** username@pc
+---[RSA 3072]----+
|..B+             |
|                 |
|o.o..            |
|+* ..         o  |
|+.o.    S.   . + |
|.  ... oo o . E o|
|..         . . + |
|+o +sssss     o  |
|+o*o.  *+o       |
+----[SHA256]-----+

SSH anahtarının uzak sunucuya gönderilmesi

Burada GNU/Linux dağıtımları ve Windows işletim sistemi arasında fark bulunmaktadır.

GNU/Linux için,

ssh-copy-id username@192.168.1.100
ssh username@192.168.1.100

kullanılabilir. Bunun yanında konfigürasyon dosyasındaki Host anahtar kelimesi de bu işlem için kullanılabilir. Örneği Liman sunucusu için,

ssh-copy-id limanmys
ssh limanmys

Windows için,

Windows için de konfigürasyon dosyasındaki Host anahtar kelimesinin kullanılması mümkündür.

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh limanmys "cat >> .ssh/authorized_keys"
ssh limanmys

Bu adımdan sonra artık sunucularınıza parolasız erişmeniz mümkün olacaktır. Erişmenin yanı sıra VSCode SSH eklentisini de parolasız kullanabilirsiniz.

Last updated