Saya memiliki entri berikut di .ssh/config
file saya
Host AAA
User BBB
HostName CCC
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p
Di atas memungkinkan saya untuk multiplex beberapa sesi ssh melalui koneksi ssh yang sama tanpa harus mengetikkan kata sandi setiap kali saya membutuhkan sesi baru (selama koneksi master tetap terbuka).
Namun, saya perhatikan bahwa ketika saya memiliki # koneksi multiplexing yang relatif tinggi (~ 7), saya tidak bisa menambahkan sesi lagi ke koneksi multiplexed yang sama, dan saya mulai mendapatkan kesalahan berikut:
> ssh -X AAA
mux_client_request_session: session request failed: Session open refused by peer
Password:
Pertanyaan saya:
Mengapa saya mendapatkan kesalahan ini? Apakah ada batasan dalam # sesi ssh yang dapat saya multiplekskan dalam koneksi yang sama? Bisakah saya mengubah batas itu? Apakah itu ide yang buruk?
Jawaban:
The
sshd
daemon di server membatasi jumlah sesi per koneksi jaringan. Ini dikendalikan olehMaxSessions
opsi di/etc/ssh/sshd_config
. JugaMaxStartups
opsi mungkin perlu ditingkatkan jika Anda menggunakan banyak sesi. (Lihatman sshd_config
untuk perincian lebih lanjut.) Opsi untuk mengubahMaxSessions
batas telah diperkenalkan di OpenSSH 5.1 dan kelihatannya angka itu sebelumnya telah diperbaiki pada 10. Jika Anda melebihiMaxSessions
pada server, Anda akan melihatsshd[####]: error: no more sessions
di log server.sumber
Saya mengalami masalah ini pada server dengan versi OpenSSH sebelumnya. Saya mengontrol server, dan saya memecahkan masalah dengan membuat dua CNAME dalam konfigurasi bernama saya:
Kemudian, dalam konfigurasi klien ssh lokal saya:
Pernyataan ControlPath adalah agar nama soket kontrol tidak saling menginjak.
Itu saja, tetapi untuk membuatnya mudah dikelola, saya menulis skrip wrapper untuk 'ssh' di sisi klien. Ia memahami bahwa ada 'grup' host (dalam hal ini realhost, realhost1, realhost2 terdiri dari satu grup). Saat mengeluarkan 'sshwrapper realhost', jika tidak ada saluran terbuka, ketiganya dibuka, dan satu sesi dimulai. Lain kali dijalankan, ini menghitung koneksi terbuka per saluran, dan membuka sesi baru di saluran dengan koneksi paling sedikit.
Dengan satu host nyata, dan dua host 'palsu', saya dapat terhubung 30 kali sebelum menerima kesalahan. Masuk sangat cepat, kecuali waktu awal membutuhkan satu atau dua detik, karena ketiga saluran kontrol dibuka pada waktu itu.
sumber