Aku sudah memutuskan untuk menguraikan dan menguji Ravexina 's ide . Ini berfungsi dan efektif jika Anda ingin membatasi jumlah koneksi ssh yang ada.
Pertama saya menemukan ketika daemon ssh sedang berjalan tanpa koneksi ada satu sshdproses. Untuk setiap koneksi baru dua sshdproses baru dibuat. Jadi, jika Anda ingin batas 20 koneksi, ambang batasnya harus 41 (1 + 2x20), bukan 20.
Lalu saya membuat file yang dapat dieksekusi, bernama , yang terlihat seperti berikut:/usr/local/bin/limit-sshd
#!/bin/sh
if [ "$(pgrep -cx sshd)" -gt 7 ]
then
echo '\nThe limit was reached!\n'
pkill -xn sshd
fi
- Ambang batas di sini adalah 7, masing-masing hanya 3 koneksi dapat dibuat dan sisanya akan dijatuhkan.
Akhirnya saya menambahkan arahan berikut ke /etc/ssh/sshd_config:
ForceCommand /usr/local/bin/limit-sshd; $SHELL
- Variabel
$SHELLakan mengeksekusi shell pengguna default.
- Efek yang tidak diinginkan adalah bahwa pesan sambutan tidak lagi tersedia.
- Jangan lupa untuk me-restart daemon ssh:
sudo systemctl restart sshd.service
Inilah cara kerjanya ( klik pada gambar untuk melihat demo animasi ):

Selanjutnya, saya menyadari bahwa kita tidak perlu membunuh apa pun, jika kita memodifikasi skrip dengan cara ini:
#!/bin/sh
if [ "$(pgrep -cx sshd)" -gt 7 ]
then
echo '\nThe limit was reached!\n'
exit # This line is not mandatory
else
eval "$SHELL"
fi
Dan masing-masing /etc/ssh/sshd_configdengan cara ini:
ForceCommand /usr/local/bin/limit-sshd
MaxSessionslapangan