Linux'ta SSH Bağlantılarını Hızlandırmanın 4 Yolu


SSH, Linux sunucularını uzaktan yönetmenin en popüler ve güvenli yöntemidir. Uzaktan sunucu yönetimindeki zorluklardan biri, özellikle uzak ve yerel makineler arasında oturum oluşturma söz konusu olduğunda bağlantı hızlarıdır.

Bu süreçte birçok darboğaz vardır; bir senaryo, uzak bir sunucuya ilk kez bağlandığınız zamandır; Bir oturumun kurulması normalde birkaç saniye sürer. Ancak, art arda birden fazla bağlantı başlatmaya çalıştığınızda, bu durum bir ek yüke neden olur (işlemi gerçekleştirmek için aşırı veya dolaylı hesaplama süresi, bellek, bant genişliği veya diğer ilgili kaynakların birleşimi).

Bu yazıda Linux'ta uzak SSH bağlantılarının nasıl hızlandırılacağına dair dört faydalı ipucu paylaşacağız.

1. SSH Bağlantısını IPV4 Üzerinden Zorlayın

OpenSSH hem IPv4/IP6'yı destekler, ancak bazen IPv6 bağlantıları daha yavaş olma eğilimindedir. Dolayısıyla, aşağıdaki sözdizimini kullanarak ssh bağlantılarını yalnızca IPv4 üzerinden zorlamayı düşünebilirsiniz:

ssh -4 [email 

Alternatif olarak, ssh yapılandırma dosyanızdaki /etc/ssh/ssh_config (genel yapılandırma) veya ~ içindeki AddressFamily (bağlanırken kullanılacak adres ailesini belirtir) yönergesini kullanın. /.ssh/config (kullanıcıya özel dosya).

Kabul edilen değerler şunlardır: "herhangi biri", yalnızca IPv4 için "inet" veya "inet6".

vi ~.ssh/config 

Kullanıcıya özel ssh yapılandırma dosyasını yapılandırmaya ilişkin yararlı bir başlangıç kılavuzu:

  1. Uzaktan Erişimi Basitleştirmek için Özel SSH Bağlantıları Nasıl Yapılandırılır

Ayrıca uzak makinede, /etc/ssh/sshd_config dosyasındaki yukarıdaki yönergeyi kullanarak sshd arka plan programına IPv4 üzerinden bağlantıları dikkate alması talimatını da verebilirsiniz.

2. Uzak Makinede DNS Aramasını Devre Dışı Bırakın

Varsayılan olarak, sshd arka plan programı uzak ana bilgisayar adını arar ve ayrıca uzak IP adresi için çözümlenen ana bilgisayar adının aynı IP adresiyle eşleşip eşleşmediğini de kontrol eder. Bu, bağlantı kurulumunda veya oturum oluşturmada gecikmelere neden olabilir.

UseDNS yönergesi yukarıdaki işlevselliği kontrol eder; devre dışı bırakmak için /etc/ssh/sshd_config dosyasında arayın ve açıklamasını kaldırın. Ayarlanmamışsa no değeriyle ekleyin.

UseDNS  no

3. SSH Bağlantısını Yeniden Kullanın

Uzak bağlantıları kabul eden bir sshd arka plan programına bağlantılar kurmak için bir ssh istemci programı kullanılır. Yeni bir ssh oturumu oluştururken önceden kurulmuş bir bağlantıyı yeniden kullanabilirsiniz ve bu, sonraki oturumları önemli ölçüde hızlandırabilir.

Bunu ~/.ssh/config dosyanızda etkinleştirebilirsiniz.

Host *
	ControlMaster auto
	ControlPath  ~/.ssh/sockets/%r@%h-%p
	ControlPersist 600

Yukarıdaki yapılandırma (Ana Bilgisayar *), bu yönergeleri kullanarak bağlandığınız tüm uzak sunucular için bağlantının yeniden kullanılmasını sağlayacaktır:

  • ControlMaster – tek bir ağ bağlantısı üzerinden birden fazla oturumun paylaşılmasını sağlar.
  • KontrolPath – bağlantı paylaşımı için kullanılan kontrol yuvasına giden yolu tanımlar.
  • ControlPersistControlMaster ile birlikte kullanılırsa, ssh'ye ilk istemci bağlantısı kapatıldıktan sonra ana bağlantıyı arka planda açık tutmasını (gelecekteki istemci bağlantılarını bekleyerek) bildirir.

Bunu belirli bir uzak sunucuya yapılan bağlantılar için etkinleştirebilirsiniz, örneğin:

Host server1
	HostName   www.example.com
	IdentityFile  ~/.ssh/webserver.pem
      	User username_here
	ControlMaster auto
	ControlPath  ~/.ssh/sockets/%r@%h-%p
	ControlPersist  600

Bu şekilde yalnızca ilk bağlantıda bağlantı yüküne maruz kalırsınız ve sonraki tüm bağlantılar çok daha hızlı olur.

4. Özel SSH Kimlik Doğrulama Yöntemini Kullanın

Ssh bağlantılarını hızlandırmanın başka bir yolu da tüm ssh bağlantıları için belirli bir kimlik doğrulama yöntemini kullanmaktır ve burada ssh keygen'i kullanarak ssh şifresiz oturum açmayı 5 kolay adımda yapılandırmanızı öneririz.

Bu işlem tamamlandıktan sonra yukarıdaki ssh_config dosyalarındaki (genel veya kullanıcıya özel) PreferredAuthentications yönergesini kullanın. Bu yönerge, istemcinin kimlik doğrulama yöntemlerini denemesi gereken sırayı tanımlar (birden fazla yöntem kullanmak için komutla ayrılmış bir liste belirleyebilirsiniz).

PreferredAuthentications=publickey 

İsteğe bağlı olarak, aşağıdaki sözdizimini komut satırından kullanın.

ssh -o "PreferredAuthentications=publickey" [email 

Güvenli olmadığı düşünülen şifre kimlik doğrulamasını tercih ediyorsanız bunu kullanın.

ssh -o "PreferredAuthentications=password" [email 

Son olarak, yukarıdaki tüm değişiklikleri yaptıktan sonra sshd arka plan programınızı yeniden başlatmanız gerekir.

systemctl restart sshd	#Systemd
service sshd restart 		#SysVInit

Burada kullanılan yönergeler hakkında daha fazla bilgi için ssh_config ve sshd_config kılavuz sayfalarına bakın.

man ssh_config
man sshd_config 

Ayrıca Linux sistemlerinde ssh'nin güvenliğini sağlamak için şu yararlı kılavuzlara da göz atın:

  1. SSH Sunucusunu Güvenli Hale Getirmek ve Korumak için En İyi 5 Uygulama
  2. Linux'ta Etkin Olmayan veya Boşta SSH Bağlantılarının Bağlantısı Nasıl Kesilir

Şimdilik bu kadar! SSH bağlantılarını hızlandırmak için herhangi bir ipucunuz/püf noktanız var mı? Bunu yapmanın başka yollarını da duymak isteriz. Bizimle paylaşmak için aşağıdaki yorum formunu kullanın.