Не удается изменить порт ssh | Сервер 16.04

Вопрос или проблема

Я хочу изменить порт ssh с 22 на 2800. Я попытался изменить /etc/ssh/ssh_config, убрал # с строки Port и изменил номер на 2800. После выполнения команды: service ssh restart соединение продолжило работать. Когда я попытался подключиться с порта 2800, мне отказали.
Содержимое /etc/ssh/ssh_config выглядит так: Убраны закомментированные строки

Host *
Port 2800
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no

Команда service ssh status дает следующий вывод:

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2017-09-22 20:31:45 IRST; 1s ago
 Main PID: 1825 (sshd)
    Tasks: 1
   Memory: 724.0K
      CPU: 5ms
   CGroup: /system.slice/ssh.service
           └─1825 /usr/sbin/sshd -D

Sep 22 20:31:45 GoodMind systemd[1]: Starting OpenBSD Secure Shell server...
Sep 22 20:31:45 GoodMind sshd[1825]: Server listening on 0.0.0.0 port 22.
Sep 22 20:31:45 GoodMind sshd[1825]: Server listening on :: port 22.
Sep 22 20:31:45 GoodMind systemd[1]: Started OpenBSD Secure Shell server.

Я пробовал и другие порты. Но статус остается прежним. Что я делаю не так?

Измените порт не в файле:

/etc/ssh/ssh_config, а в
/etc/ssh/sshd_config (файл с буквой d, означающей “демон”)

Просто отредактируйте это изменение, раскомментируйте и обновите строку

#Port 22

Не забудьте перезапустить службу, как вы это сделали с

service ssh restart

Ваши настройки правильные, но вы изменили их в неправильном конфигурационном файле. Это должен быть /etc/ssh/sshd_config, и вам, возможно, нужно будет перезапустить службу SSH и открыть новый порт, на котором слушает ваш SSH-сервер.

Для этого выполните следующие команды:

  1. sudo service ssh restart или sudo systemctl restart sshd.service
  2. Откройте порт в брандмауэре sudo iptables -I INPUT -p tcp --dport 2800 -j ACCEPT.

Этого должно быть достаточно, чтобы принимать подключения на порту 2800. Вы также можете проверить, на каких портах ваша машина слушает, с помощью netstat -lt4, и вы должны увидеть строку, похожую на

tcp        0      0 *:2800                   *:*                     LISTEN

Дайте знать, если это сработает!

Без лишних слов, решение следующее:

Убедитесь, что вы открыли несколько терминалов, подключенных к вашему серверу, чтобы не заблокировать себя.

  1. Уберите комментарий с ключа Port в /etc/ssh/sshd_config (не /etc/ssh/ssh_config) и измените его на новый порт.
  2. Измените порты прослушивания в /etc/systemd/system/ssh.service.requires/ssh.socket со старого порта (например, 22) на новый порт и оставьте другие конфигурации без изменений.
  3. Разрешите порт в вашем брандмауэре: sudo ufw allow <port>/tcp
  4. Перезапустите демон: sudo systemctl daemon-reload.
  5. Перезапустите ssh: sudo systemctl restart ssh и перезапустите сокет sudo systemctl restart ssh.socket
  6. Проверьте изменения: sudo ss -tlnp | grep ssh (должен показать ваш новый порт).
  7. Проверьте соединение в новом терминале: ssh user@<ip> -p <port>. Теперь это должно работать без ошибок!

Однако, если вы столкнулись с ошибками при запуске ssh (как и я, потратив часы, пытаясь выяснить, почему и почти заблокировав себя на сервере), просто попробуйте переустановить ssh, повторите вышеуказанные шаги, и все будет в порядке!

Ответ или решение

Для изменения порта SSH на сервере Ubuntu 16.04 вам необходимо внести изменения в правильный конфигурационный файл и выполнить несколько команд для правильной настройки. Ниже представлен пошаговый процесс, который позволит вам успешно сменить порт SSH и избежать блокировки доступа.

1. Определите правильный конфигурационный файл

Многие пользователи путают файл конфигурации SSH. Вам необходимо изменять файл /etc/ssh/sshd_config, а не /etc/ssh/ssh_config. Первый файл относится к настройкам демона SSH, тогда как второй — это конфигурация клиента.

2. Редактирование конфигурационного файла

Откройте файл /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

Найдите строку, начинающуюся с #Port 22, уберите символ # и измените порт на 2800:

Port 2800

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

3. Настройка брандмауэра

Перед перезапуском сервиса необходимо открыть новый порт в брандмауэре. Если вы используете ufw, выполните следующую команду:

sudo ufw allow 2800/tcp

Если у вас установлен iptables, используйте такую команду:

sudo iptables -I INPUT -p tcp --dport 2800 -j ACCEPT

4. Перезапуск службы SSH

После внесения изменений и настройки брандмауэра перезапустите SSH:

sudo systemctl restart ssh

5. Проверка статуса службы

Проверьте статус службы для уверенности, что она слушает на новом порту:

sudo ss -tlnp | grep ssh

Вы должны увидеть строку, подобную следующей, с вашим новым портом:

tcp    LISTEN     0      128          *:2800                     *:*                   users:(("sshd",pid=1825,fd=3))

6. Тестирование подключения

Используйте новое соединение для тестирования:

ssh user@<IP-адрес> -p 2800

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

Дополнительные советы

Если вы столкнулись с ошибками при перезапуске SSH или не можете подключиться, попробуйте переустановить SSH:

sudo apt-get remove --purge openssh-server
sudo apt-get install openssh-server

После этого повторите вышеперечисленные шаги.

Следуя этой инструкции, вы сможете успешно изменить порт SSH на вашем сервере, обеспечив дополнительный уровень безопасности и доступности вашего ресурса.

Оцените материал
Добавить комментарий

Капча загружается...