Наиболее правильно сделать всё, что сказали выше +
1. выключить авторизацию по паролю(только через сертификат)
2. в iptables поставить доступ к ssh только с определённых ip
3. в ssh продублировать доступ с определённых ip
4. Для nginx скрыть версию, для php тоже, для системы тоже почитать как она скрывается
5. настроить fail2ban для всех открытых сервисов с авторизацией
6. на всех сервисах ограничить количество одновременных соединений, тут везде по-разному. limits и прочее
Для параноиков всегда можно сделать на сервере openvpn на 443 порту, разрешить совместное использование оного с nginx, сбацать себе сертификат неэкспортируемый, передать его сложным путём через дробленный архив с паролем, затем импортировать используя пароль в закрытое хранилище устройства и сидеть с него в ssh на сервер.