Skip to content
Onlayer

SSH, Unix ve türevi işletim sistemlerinde uzaktan konsol erişimi için kullanılan bir arabirimdir. En yetkili kullanıcısı root‘dur. Bu kullanıcı ile sunucu başında ekran ve klavye ile yapabileceğiniz tüm işlemleri uzaktan da yapabilirsiniz. SSH veri iletişimi için TCP 22 portunu kullanmaktadır.

SSH protokolü eski ve yeni birçok şifre algoritmasını kabul edebilir. Bu algoritmaların bazılarının güvenilirliğinin zayıf olmasından dolayı, kurulum sonrasında kullanıma kapatılması doğru olacaktır. Ayrıca şifre ile giriş gibi yöntemler, PCI DSS standartlarında güvenli olarak kabul edilmezler. Bu nedenle özel anahtar kullanımına geçiş yapılması gerekir. Onlayer SSH servisini sorgular ve kimlik doğrulama metotlarını sıralar.

Çözüm

SSH bağlantıları güvenli olmaları için sadece iç ağlara açık olmalı ya da sadece güvenilen IP adreslerinden gelen bağlantıları kabul etmelidir.

Hosts dosyaları ile

SSH izni olan ve olmayan IP adresleri/etc/hosts.allow ve /etc/hosts.deny dosyalarından ayarlanabilir. Örnekteki ayar ile /etc/hosts.allow içinde belirtilen IP adresleri dışından gelen tüm SSH istekleri reddedilecektir.

/etc/hosts.allow:

SSHD:172.16.1.10:ALLOW            # tek IP
SSHD:192.168.                     # B sınıfı tüm blok
SSHD:85.105.75.75/255.255.255.255 # tek IP
SSHD:85.105.75.1/255.255.255.0    # C sınıfı blok

/etc/hosts.deny

sshd : ALL

sshd_config Yapılandırması

/etc/ssh/sshd_config dosyası, sshd servisinin parametrelerini içermektedir.

  • Port: 22 dışında bir değer verebilirsiniz, 1000-65535 arasında tercih edilmelidir.
  • PermitRootLogin: root olarak girmek istemiyorsanız no, istiyorsanız public key ile yapmak için without-password şeklinde yapmalısınız

Bir ifadeyi etkinleştirmek için önündeki # işaretini kaldırmalısınız

Port 2211     # firewall yapilandirmasinda bu porta izin vermeniz gerekebilir.
PermitRootLogin without-password  # sadece key

Sunucuyu yeniden başlatın

systemctl restart sshd

Kendinize özel anahtar nasıl oluşturursunuz

Yukarıdaki yapılandırmada without-password ifadesini kullandığımız için ssh sunucusu sadece özel ahantar ile kimlik doğrulamasına izin verecektir. Bu sunucuya public anahtarınızı yüklediğinizde, özel anahtarınızı tanımladığınız her SSH istemcisinde şifrenizden daha basit bir PIN ile kolayca giriş sağlayabilirsiniz.

Özel ve genel anahtarlarınızı oluşturmak için herhangi bir Linux terminalinde şu komutları giriniz:

# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/rsa_kimlik
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/rsa_kimlik.
Your public key has been saved in /root/.ssh/rsa_kimlik.pub.
The key fingerprint is:
SHA256:QB0EF03SPE2C4tso3u/8OAYaih/jrPftLEos3D9lLGs root@localhost
The key's randomart image is:
+---[RSA 3072]----+
|      o+*Ooo.    |
|     ...o.=..    |
|     ...   .     |
|      ..         |
|      .+S        |
|... o.++.        |
|.o=+ ==.         |
|.=oo=E..o.       |
|.+=oo+=+=o.      |
+----[SHA256]-----+

Size dosya ismini soracaktır, örnekte /root/.ssh/rsa_kimlik kullandım. Passphrase girmezseniz özel anahtarınızın şifresi olmayacaktır, bunu kesinlikle tavsiye etmiyoruz, anahtarınız ele geçirilse bile public anahtarın yüklü olduğu sunuculara girmek için passphrase’in bilinmesi gerekecektir.

Özel Anahtarı Sunuculara Yükleme

Özel anahtarı sunuculara yüklemek için aşağıdaki komutu kullanabilirsiniz:

ssh-copy-id root@uzak_sunucu_IP -p 2211

Bir başka yöntemde hedef sunucunun bağlanılmak istenen kullanıcısının .ssh/ dizini altındaki authorized_keys dosyasına public anahtarın eklenmesidir.

Hedef sunucuda erişilmek istenilen kullanıcı dizini altında .ssh dizini olup olmadığını kontrol edin, bu örnekte root kullanılmaktadır.

cd
ls -la

Eğer yukarıdaki ekran görüntüsünde olduğu gibi hedef sunucuda .ssh dizini yoksa elle oluşturmaya çalışmayın, çoğunlukla permission hatası alırsınız. Onun yerine pratik bir yöntem olan kendi sunucunuza ssh atıp, gelen anahtarı kabul ettikten sonra CTRL+C tuşuna basarak çıkınız. Sunucunun anahtarını kabul ettiğiniz için ssh sunucusu dizin altında .ssh/known_hosts dosyasını oluşturmak için .ssh dizinini açacak ve izinlerini de ayarlayacaktır:

ssh dizini yoksa, oluşturmak için:

ssh root@localhost -p 2211
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[localhost]:2211' (ECDSA) to the list of known hosts.

Daha sonra echo komutu ile özel anahtarınızı authorized_keys dosyasının sonuna atabilirsiniz:

echo “ssh-rsa AAAAB3NzaC1y……Ol8= root@localhost” >> /root/.ssh/authorized_keys

Yasal Uyarı

Copyright (c) 2019 – 2026 ONLAYER Bilişim Teknolojileri A.Ş.

Bu sayfadaki içeriğin kullanımı sadece bu sayfaya link ile atıf yapılarak mümkündür. Yazılı izin olmadan değiştirilemez ve alıntı yapılamaz.

Kullanım Uyarısı: Burada belirtilen direktifler olduğu gibidir ve uygulanması sonucunda oluşabilecek servis kesintileri ve veri kaybından ONLAYER sorumlu değildir. Sistemlerin daha iyi çalışabileceği ya da daha güvenli olacağına dair hiç bir garanti verilmemektedir. Ne firma ne de yazar kullanımdan dolayı hiçbir sorumluluk kabul etmemektedir.

Ağ ve uzaktan erişim

← Bilgi Bankası'na dön