Apakah mungkin agar sshd hanya menerima kata sandi pada port tertentu?

24

Saya tahu mungkin untuk sshdmendengarkan beberapa port dengan menggunakan beberapa Portarahan. Apakah mungkin untuk secara mandiri menyesuaikan pengaturan per port? Secara khusus, apakah mungkin untuk memiliki satu port yang memungkinkan otentikasi kata sandi, tetapi port lain tidak mengizinkannya?

Laurence Gonsalves
sumber
1
Ngomong-ngomong: alasan saya melakukan ini adalah karena saya ingin memperbolehkan kata sandi pada LAN saya, tetapi tidak dari WAN. Firewall WAN saya hanya memungkinkan koneksi ke port yang lebih ketat.
Laurence Gonsalves
1
Lihat juga batasan berdasarkan alamat IP jika Anda lebih suka menggunakan nomor port standar.
ændrük

Jawaban:

32

Ini bisa dilakukan dengan Matcharahan.

Di /etc/sshd_config, nyatakan beberapa port:

Port 22
Port 2222

Kemudian, di bagian paling akhir file, tambahkan berikut ini:

Match LocalPort 2222
PasswordAuthentication no

Semua pengaturan akan dibagikan antar port, kecuali otentikasi kata sandi akan dinonaktifkan pada port 2222.

Laurence Gonsalves
sumber
+1 Sangat menarik
Carlos Campderrós
Sayang sekali Matchtidak bekerja AllowUsers. Bagi siapa pun yang perlu membatasi pengguna untuk port tertentu, Anda kemungkinan besar terjebak dengan menjalankan beberapa sshdinstance.
Bob
0

Satu sshdproses, saya tidak percaya begitu, tetapi seharusnya cukup mudah untuk mengatur file konfigurasi kedua dan menjalankan dua sshdpendengar, satu pada port kata sandi dan lainnya pada port non-kata sandi.

John
sumber
3
Saya menemukan bahwa sebenarnya ada cara untuk melakukan ini dengan satu instance sshd. Lihat jawaban yang saya posting. Bagaimanapun, terima kasih.
Laurence Gonsalves