SSH çoğullama sınırları


26

Benim aşağıdaki girdiyi sahip .ssh/configdosyasında

Host AAA
    User BBB
    HostName CCC
    ControlMaster auto
    ControlPath ~/.ssh/%r@%h:%p

Yukarıdakiler, her yeni seansa ihtiyacım olduğunda (ana bağlantı açık kaldığı sürece) şifreyi girmek zorunda kalmadan aynı ssh bağlantısı üzerinden çoklu ssh oturumlarını çoğaltmama izin veriyor.

Bununla birlikte, göreceli olarak yüksek bir bağlantı sayısı olan (~ 7) bir kez daha yüksek bağlantılara sahip olduğumda, aynı çoğaltılmış bağlantıya daha fazla oturum ekleyemediğimi ve şu hatayı almaya başladığımı farkettim:

> ssh -X AAA

mux_client_request_session: session request failed: Session open refused by peer
Password: 

Sorularım:

Neden bu hatayı alıyorum? Aynı bağlantıda çoğaltabildiğim ssh oturumlarının sayısında bir sınır var mı? Bu limiti değiştirebilir miyim? Bu kötü bir fikir olur mu?


2
Soruları doğrudan yanıtlayamıyorum, ancak sorunu gidermeyle ilgili bazı önerilerde bulunabilirim. Eş bağlantıyı reddettiğinden, bağlandığınız sistemdeki kayıtlara bakarak başlarım. Bakalım sshd hata veriyor mu? Değilse, LogLevel'i yükseltin ve tekrar deneyin. Hemen belli olmayan bir günlük mesajı bulursanız ve ifadeyi aramak yardımcı olmazsa, kaynak kodunda grep kullanabilirsiniz. Hata mesajları sıklıkla koşullarla çevrilidir - bunlardan biri (veya bir kısmı) karşılanmadı ve bu yüzden bu mesaj geldi.
Shawn J. Goff

Yanıtlar:


26

sshdSunucuda cin ağ bağlantısının başına oturum sayısını sınırlamaktadır. Bu MaxSessionsseçenek içinde kontrol edilir /etc/ssh/sshd_config. Ayrıca, MaxStartupsçok sayıda oturum kullanıyorsanız seçeneğin artırılması gerekebilir. (Bkz man sshd_configdeğiştirme seçeneği. Daha fazla detay için) MaxSessionslimiti OpenSSH 5.1 kullanıma girmiştir ve numara daha önce sert sabit Eğer aşarsanız 10'da olduğu görünüyor MaxSessionssunucuda görürsünüz sshd[####]: error: no more sessionssunucunun günlüğüne.


4

Bu sorunla daha önce OpenSSH sürümü olan bir sunucuda karşılaştım. Sunucuyu kontrol ediyorum ve adımı yapılandırdığımda iki CNAME oluşturarak sorunu çözdüm:

realhost.myexample.com.      IN  A       XXX.XXX.XXX.XXX
realhost2.myexample.com.     IN  CNAME   realhost.myexample.com.
realhost3.myexample.com.     IN  CNAME   realhost.myexample.com.

Ardından, yerel ssh istemcisi config:

ControlMaster auto
ControlPath ~/.ssh/%r_%p_%h

host realhost
hostname realhost.myexample.com

host realhost2
hostname realhost2.myexample.com

host realhost3
hostname realhost3.myexample.com

ControlPath deyimi, kontrol soketi adlarının birbirine basmadığı şekildedir.

İşte bu, ancak yönetimi kolaylaştırmak için, istemci tarafında 'ssh' için bir sarmalayıcı komut dosyası yazdım. Ana bilgisayarların 'grupları' olduğunu anlar (bu durumda realhost, realhost1, realhost2 bir grup içerir). 'Sshwrapper realhost' yayınlanırken, açık kanal yoksa, her üçü de açılır ve bir oturum başlar. Bir dahaki sefere çalıştırıldığında, kanal başına açık bağlantıları sayar ve yeni oturumu en az bağlantıyla kanalda açar.

Bir gerçek ve iki 'sahte' ana bilgisayarla, hata almadan önce 30 kez bağlantı kurabilirim. Giriş yapmak son derece hızlıdır, çünkü başlangıç ​​süresi bir veya iki saniye sürer, çünkü üç kontrol kanalı da o anda açılır.


Senaryo gerçek bir zaman kazandıran gibi geliyor ve gerçekten faydalı olurdu. Hala sahipseniz, halkla paylaşmayı düşünür müsünüz?
thefourtheye

Burada uygun olduğundan emin değilim, çünkü bir sorunun cevabı değil. Ayrıca, sadece kendim için yazdım ve bir Mac istemcisinde çalışıyor (Linux sunucularıma giriş yapmak için). Kod 'ps' çıktısını ayrıştırır ve farklı 'ps' sözdizimi nedeniyle Linux'ta çalışacak şekilde değiştirilmesi gerekir.
joe

Yeterince adil. Yine de genel fikri paylaştığınız için teşekkür ederiz.
dört, eylül

Senaryoyu moosiefinance.com:8081/sshm.zip adresinde yerleştirdim.
joe

Müthiş ... Çok teşekkürler ... Bunu
geçmeme
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.