SSH сбрасывает к порту по умолчанию на перезагрузке

Я изменил свой порт SSH по умолчанию на моем домашнем сервере (в /etc/ssh/sshd_config файл) для портирования 54747, затем перезапустил ssh и sshd сервисы (никогда уверенный, который, таким образом, я сделал обоих только для сейфа). Для тестирования моей конфигурации я вышел из системы и затем обратно в без любой проблемы.

Пара несколько дней спустя, я установил способные обновления и затем перезагрузил мой сервер. Когда я попробовал к SSH, въезжают задним ходом (на порте 54747), я добрался, соединение отказалось от ошибки.

По некоторым причинам я попробовал к SSH на порте по умолчанию, и он работал! Я возвратился для проверения sshd_config, но он все еще имел пользовательский порт. Таким образом, я перезапустил sshи sshdсервисы, и это возвратилось к "регулярному" поведению (ssh на порте 54747). Я пытался перезагрузить снова, и соединение, которому отказывают снова...

Кто-либо знает то, что я сделал неправильно?

Дополнительные детали:

  • Ubuntu 16.04.2 LTS
  • Сервер также используется HTPC с открытым заседанием (тот же пользователь как SSH) по моему телевизору
  • Я SSH использование ключа моего ноутбука RSA, и отключил автора пароля
  • Я раньше перезагружал с sudo reboot -h now, но после поиска, я обнаружил, что ему препятствовали некоторые люди, таким образом, я попробовал sudo reboot, но никакие различия

Последовательность РЕДАКТИРОВАНИЯ событий:

  1. Порт SSH изменения от 22 до 54 747 в /etc/ssh/sshd_config
  2. Перезапустите ssh и sshd сервисы
  3. Закончите текущую сессию SSH
  4. SSH въезжают задним ходом успешно на порте 54747
  5. Перезагрузка
  6. Ошибка соединения SSH на порте 54747, но успешный на порте 22
  7. Перезапустите ssh и sshd сервисы
  8. SSH въезжают задним ходом успешно на порте 54747, ошибка соединения на порте 22
  9. Перезагрузка и возвращается к 6

РЕДАКТИРОВАНИЕ 1: netstat вывод

rgo@ATLAS:~$ sudo netstat -lntp | grep :54747
rgo@ATLAS:~$ sudo netstat -lntp | grep :22
tcp6       0      0 :::22                   :::*                    LISTEN      1/init  

РЕДАКТИРОВАНИЕ 2: service sshd status

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

РЕДАКТИРОВАНИЕ 3: lsof -i | grep ssh

systemd      1     root   46u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
systemd      1     root   49u  IPv6  14641      0t0  TCP *:ssh (LISTEN)
sshd      4088     root    3u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd      4088     root    4u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd      4202      rgo    3u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd      4202      rgo    4u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)

Для ссылки ATLAS является именем хоста удаленного сервера, 192.168.1.27 IP LAN моего ноутбука, и команда выполнялась между шагами 6 и 7

ufw status

Status: inactive

РЕДАКТИРОВАНИЕ 4: ps -ef |grep sshd

root      4088     1  0 22:40 ?        00:00:00 sshd: rgo [priv]
rgo       4202  4088  0 22:40 ?        00:00:00 sshd: rgo@pts/1 sshd
12
задан 14 June 2017 в 14:12

6 ответов

Вероятно, Вы просто ответили на Y когда способные обнаруженные различия между Вашим sshd_config и одним пакета. Это спрашивает, хотите ли Вы установить версию mantainer's пакета или сохранить Вашу.

0
ответ дан 23 November 2019 в 03:46

Проверьте свои параметры порта в /etc/ssh/sshd_config файл. Удостоверьтесь, что Вы редактируете как sudo или пользователь в sudo группе. Все, что необходимо сделать для установки порта, на одном типе Port 54747. строки Теперь, перезапустите ssh сервис путем выполнения service sshd restart., Затем проверяют, что ssh слушает на том порте путем выполнения sudo netstat -lntp | grep ssh. Перезагрузка и тест.

Также проверяют Ваши параметры сети. Если Вы находитесь в корпоративной сети, удостоверьтесь, что Вы находитесь в корректном VLAN.

0
ответ дан 23 November 2019 в 03:46

Иногда вещи просто идут не так, как надо. Если бы я был на Вашем месте, то я попробовал бы:

cp /etc/ssh/sshd_config $HOME
sudo apt-get --reinstall install openssh-server
0
ответ дан 23 November 2019 в 03:46

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

Конфигурационный файл на sshd сервере, который читается при запуске sshd сервиса (который требует sudo полномочий отредактировать)

/etc/ssh/sshd_config

Сервис должен запуститься из

/etc/systemd/system/sshd.service

Перезапускать sshd, который включил бы перечитывание sshd_config файла

sudo service sshd restart

Видеть то, что порт sshd демон слушает, а также другая полезная информация, на ssh типе сервера

sudo service sshd status

Сделайте эти шаги в указанном порядке:

Перезагрузите ssh сервер

Откройте терминальный сеанс на ssh сервере (не соединение SSH в него)

Ввести hostname

Если имя хоста не возвращает название ssh сервера (Атлас в этом случае) восстанавливают предыдущий шаг правильно.

grep Port /etc/ssh/sshd_config - отметьте номер порта. Должен быть тот, который Вы указали

sudo service sshd status

Если отчеты о состоянии, что это активно, работая и слушая на пользовательском порте, который Вы указали, то Вы хороши на том конце. В противном случае сервисный запуск не может называть sshd_config файл, который Вы изменили только другой файл конфигурации, который содержит информацию по умолчанию. Если сервис не запускался (говорит мертвый и не активный и выполнение, то это - другая проблема, чем, о чем Вы спросили.

Эти шаги, вероятно, определят первопричину проблемы, о которой Вы спрашиваете.

Для тестирования и для простоты: На стороне клиента от терминального сеанса Вы были бы ssh в ssh сервер следующим образом

ssh -l username -p 54747 hostname

На основе обратной связи OP я подозреваю, что sshd не запускает на начальной загрузке, но действительно запускается правильно, когда вручную вызвано. Успешные соединения SSH через порт 22 НЕ могут соединяться с ssh сервером, но с чем-то еще (например, localhost). Доказать или разоблачить это, после соединения через тип ssh

hostname

На основе того, что заявляет OP, я предполагаю, что имя хоста не будет ssh атласом сервера.

Далее изолировать это, после перезагрузки ssh сервера, но прежде, чем сделать что-либо далее, от терминального сеанса на ssh сервере (Атлас) тип

ssh localhost

Если это перестало работать, как это должно, то

ssh -p 54747 localhost

Если это не работает ни один, который подтвердит результаты, полученные при выполнении

sudo service sshd status
0
ответ дан 23 November 2019 в 03:46

ssh может быть "сокетом, активированным" systemd в зависимости от конфигурации, что означает, что первоначально это - systemd, который настраивает порт прослушивания, и sshd только запускается, когда клиент сначала соединяется. Это должно ускорить время запуска: сервисные демоны только запускаются по требованию.

Однако это означает, что необходимо также настроить systemd к соответствующему порту. Вы найдете конфигурацию системы в /lib/systemd/system/ssh.socket который перечисляет ListenStream=22. Для переопределения этого создайте файл /etc/systemd/system/ssh.socket.d/port.conf (создание каталога ssh.socket.d в случае необходимости), который содержит:

[Socket]
ListenStream=
ListenStream=54747

Измените число на желаемый порт. Первая пустая запись стирает предыдущее значение по умолчанию, и последующая запись добавляет новый. Это переопределяет значение по умолчанию, поставленное в /lib/systemd/system/ssh.socket и должен быть сделан в дополнение к изменению /etc/ssh/sshd_config.

Затем выполненный sudo systemctl daemon-reload сказать systemd о Ваших изменениях, и sudo systemctl reload ssh если Ваш ssh демон ранее работал.

2
ответ дан 23 November 2019 в 03:46

Возможные причины, о которых я могу думать

  1. Другой sshd двоичный файл запускается на начальной загрузке, или sshd запускается с другой конфигурации. Возможно, systemd является преступником здесь - он имеет другой способ изменить порт через файл /usr/lib/systemd/system/sshd.socket по-видимому: https://www.vultr.com/docs/how-to-change-ssh-port-on-coreos
  2. Корректный/etc/или/etc/ssh еще не смонтированы, когда sshd запускается, действительно ли это - отдельный объем на Вашей машине, которая смонтирована позже в процессе начальной загрузки?
  3. sshd испытывает недостаток в полномочиях чтения к файлу конфигурации во время начальной загрузки, хотя я не знаю, запустился ли sshd даже затем вообще.
0
ответ дан 23 November 2019 в 03:46

Другие вопросы по тегам:

Похожие вопросы: