ВОЙТИ

    Как изменить порт подключения по SSH и отключить авторизацию по паролю

    В этой статье мы увидим как изменить стандартный порт подключения 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 -A INPUT -p tcp --dport 22333 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

    или так:

    iptables -I INPUT -p tcp --dport 22333 -m state --state NEW -j ACCEPT

    Командой iptables -L можем посмотреть что правило добавилось. 

    После этого необходимо сохранить правила, что бы после перезапуска установленный порт остался доступным. 

    Для Centos 7 используем данную команду:

    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


    Если все сделали верно, то подключение к серверу с новым портом пройдет без "танцев" происшествий.