В этой статье мы увидим как изменить стандартный порт подключения SSH на не стандартный, и отключить авторизацию по паролю. 
 
 !!! ВАЖНО !!!
 
 Убедитесь что перед этим Вы уже создали SSH ключи, и успешно подключились к северу с их использованием. Или же у Вас имеется доступ к серверу по VNC что бы обратно включить авторизацию по паролю и вернуть настройки по умолчанию.
 
 И так, для начала необходимо отредактировать файл sshd_config:
  
vim /etc/ssh/sshd_config
 В строке Port 22 (Раскомментируем если закомментирована) и изменяем порт 22 на нужный порт, например 22333:
Port 22333
 
 Перезапускаем службу sshd:
systemctl restart sshd
 Проверим, слушается ли установленный порт 22333
netstat -tupln | grep ssh
 
 Если мы видим, что для службы sshd слушается нужный нам порт 22333, или другой который Вы установили, то для того что бы нам подключиться уже используя его, необходимо разрешить его использование из вне.
 
 Для этого необходимо добавить правило в список iptables:
iptables -I INPUT -p tcp --dport 22333 -m state --state NEW -j ACCEPT
 Командой iptables -L можем посмотреть что правило добавилось. 
 
 После этого необходимо сохранить правила, что бы после перезапуска установленный порт остался доступным. 
 Для Centos 7 используем данную команду:
Сохранение текущих правил iptables:
iptables-save > /etc/sysconfig/iptablesЭта команда сохранит текущие правила iptables в файл /etc/sysconfig/iptables.
Для автоматического восстановления правил при загрузке системы, убедитесь, что у вас установлен пакет iptables-services:
yum install iptables-services
Затем включите и запустите службу:
systemctl enable iptables
systemctl start iptables
Помните, что если вы используете firewalld, он может конфликтовать с iptables. Если вы решите использовать iptables напрямую, рекомендуется отключить и остановить firewalld:
systemctl stop firewalld
systemctl disable firewalld
service iptables save
 Для Ubuntu используем другую команду. Для этого необходимо установить iptables-persistent.
apt-get install iptables-persistent
 Если получили ошибку, что нет подходящего пакета или репозитория, обновите репозитории. После этого установите обновления. 
apt update
apt upgrade
 Если данный пакет установлен, и необходимо сохранить правила:
dpkg-reconfigure iptables-persistent
 Во время реконфигурации, ответьте - YES на оба вопроса.
 
 После этого можно сохранить правила для ipv4:
iptables-save | sudo tee /etc/iptables/rules.v4
 Для ipv6:
ip6tables-save | sudo tee /etc/iptables/rules.v6
 В случае Если включен firewall добавляем правило для него:
firewall-cmd --permanent --add-port=22333/tcp
 И так же перезапускаем службу firewalld:
systemctl restart firewalld
Отключить аутентификацию по паролю SSH
Для этого правим файл /etc/ssh/sshd_config:
vim /etc/ssh/sshd_config
Ищем строку:
PasswordAuthentication yes
 
 И изменяем ее на:
PasswordAuthentication no
 Если в начале этой строки есть символ # (закомментированный), удалите его. Сохраните файл после внесения этих изменений и перезапустите службу sshd:
systemctl restart ssh
 Теперь можно перезагрузить сервер, и убедится, что вы сделали все верно.
reboot
 Если все сделали верно, то подключение к серверу с новым портом пройдет без "танцев" происшествий.