Перед атакой всегда идет изучение жертвы, иначе это не атака и это делают даже школьники. fail2ban поможет и от брутфорса тоже, практика показывает, что именно fail2ban спокойно отбивает школоту, например, 3 попытки авторизации и бан ip часиков 3-5.nmap редко запускают на скан всех портов - это уже больше похоже на преднамеренную атаку конкретного сервера, а при таком подходе fail2ban уже не поможет, хоть и ослабит.
А вот сканы на стандартные порты и с простыми паролями типа admin/qwerty от школьников прелетают ежедневно. И здесь решение со сменой порта вполне разумно.
а вариант со сменой порта ssh и "редко используют nmap" мне напоминает смену названия той или иной папки/директории, например admin на admin 123qwerty в популярной cms-ке и указание названия в robots.txt этой самой директории, дабы роботы не индексировали.
Но есть и еще один вариант, это авторизация ssh по ключу.