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

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

Через пару дней я установил apt-обновления и перезагрузил свой сервер. Когда я попытался вернуться к SSH (на порту 54747), у меня получилось сообщение об ошибке отказа.

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

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

Ubuntu 16.04.2 LTS Server - это еще один способ: также использовал HTPC, с открытым сеансом (тот же пользователь, что и SSH) на моем телевизоре I SSH, используя ключ RSA моего ноутбука, и отключил пароль auth, который я использовал для перезагрузки с sudo reboot -h now, но после поиска я обнаружил, что он был обескуражен некоторые люди, поэтому я попробовал sudo reboot, но никаких различий

EDIT Последовательность событий:

Измените SSH-порт с 22 на 54747 в /etc/ssh/sshd_config Перезапустите службы ssh и sshd Конечный ток SSH-сессия SSH обратно успешно в порт 54747 Перезагрузите ошибку соединения SSH на порт 54747, но успешно на порту 22 Перезапустите службы ssh и sshd SSH обратно успешно на порт 54747, ошибка соединения на порту 22 Перезагрузитесь и вернитесь к 6

EDIT netstat output

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

EDIT 2: service sshd status

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

ИЗМЕНИТЬ 2: 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 i с IP-сетью моего ноутбука, и команда была выполнена между шагами 6 и 7

ufw status

Status: inactive

Для справки ATLAS - это имя удаленного сервера, 192.168. 1.27 - это IP-адрес моего ноутбука, и команда была выполнена между шагами 6 и 7 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
8
задан 15 June 2017 в 00:12

8 ответов

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

Также проверьте настройки сети. Если вы находитесь в корпоративной сети, убедитесь, что вы находитесь в правильном vlan.

0
ответ дан 18 July 2018 в 11:38

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-сервер (в этом случае Atlas) правильно выполнит предыдущий шаг.

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 type

hostname

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

Чтобы дополнительно выделить это, после перезагрузки ssh-сервера но на сервере ssh (а не ssh-соединение в нем) , из сеанса терминала на типе ssh-сервера (Atlas)

ssh localhost

Если это не удается, ould, тогда

ssh -p 54747 localhost

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

sudo service sshd status
0
ответ дан 18 July 2018 в 11:38

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

1
ответ дан 18 July 2018 в 11:38

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

cp /etc/ssh/sshd_config $HOME sudo apt-get --reinstall install openssh-server
0
ответ дан 18 July 2018 в 11:38

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

Также проверьте настройки сети. Если вы находитесь в корпоративной сети, убедитесь, что вы находитесь в правильном vlan.

0
ответ дан 24 July 2018 в 19:49
  • 1
    Я сделал резервную копию и отредактировал файл как sudo и изменил линию по умолчанию Port 22 на Port 54747. Кроме того, netstat, который вы мне дали, не имел выхода. Я добавил измененный в моем OP – 3rgo 14 June 2017 в 23:40
  • 2
    Вы подключаетесь с ключом правильно? Поэтому вы должны подключаться как: ssh -i key.txt user@ipaddress -p 54747. Также проверьте, прослушивает ли что-нибудь еще на этом порту. Сделайте sudo lsof -i | grep ssh. Вы также можете проверить свой брандмауэр, чтобы убедиться, что он ничего не блокирует. Сделайте: sudo ufw status. – G_Style 14 June 2017 в 23:58
  • 3
    Ни один порт не используется на 54747 (см. Мой OP, я добавил его). Я добавляю к нему вывод ваших команд – 3rgo 15 June 2017 в 00:08
  • 4
    После того, как вы подумали о своей проблеме, я чувствую, что это не ваша настройка, а то, как вы перезагружаетесь, что вызывает эту проблему, которую вы испытываете. При перезагрузке вы должны использовать команду shutdown -r now. Попробуйте и дайте нам знать результаты. См. Эту статью для справки: askubuntu.com/questions/483670/… – G_Style 15 June 2017 в 23:51
  • 5
    Я просто попытался и получил тот же результат, что и sudo reboot -h now или `sudo reboot`` – 3rgo 16 June 2017 в 21:11

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-сервер (в этом случае Atlas) правильно выполнит предыдущий шаг.

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 type

hostname

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

Чтобы дополнительно выделить это, после перезагрузки ssh-сервера но на сервере ssh (а не ssh-соединение в нем) , из сеанса терминала на типе ssh-сервера (Atlas)

ssh localhost

Если это не удается, ould, тогда

ssh -p 54747 localhost

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

sudo service sshd status
0
ответ дан 24 July 2018 в 19:49
  • 1
    Здравствуй ! Я добавил последовательность событий, чтобы вы могли лучше понять. I SSH, используя команду ssh -p <PORT> <USER>@<IP>, с моим личным ключом, добавленным к агенту. – 3rgo 14 June 2017 в 23:38
  • 2
    Отлично. Сделайте шаг 6a: на сервере sshd, sudo service sshd status. Если он сообщает порт 22, тогда появляется поддельный файл sshd_config. – jones0610 14 June 2017 в 23:54
  • 3
    Говорит, "неактивный (мертвый)" (см. полный вывод в моем OP в секунду) – 3rgo 15 June 2017 в 00:05
  • 4
    Поэтому, если он мертв (не активен и работает), вы не попадаете в машину, о которой вы думаете. На сервере sshd введите ps -ef | grep sshd. Если демон sshd на сервере sshd на самом деле мертв, никакие процессы sshd не будут запущены, и вы выиграли бы; s sms ssh в него, независимо от используемого порта. – jones0610 15 June 2017 в 00:10
  • 5
    2 найденных процесса sshd ... Я добавил подробный вывод – 3rgo 15 June 2017 в 00:13

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

1
ответ дан 24 July 2018 в 19:49
  • 1
    Я не помню, чтобы меня спрашивали, но если предположить, что это так, что я могу сделать, чтобы исправить это? – 3rgo 23 June 2017 в 10:07

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

cp /etc/ssh/sshd_config $HOME sudo apt-get --reinstall install openssh-server
0
ответ дан 24 July 2018 в 19:49
  • 1
    Будет ли это требовать от меня физического доступа к серверу? Если так, я могу сделать это только завтра вечером – 3rgo 15 June 2017 в 00:51
  • 2
    Привет @ 3rgo, я думаю, вам не нужен физический доступ. Я просто пробовал это на своем VPS. Также на моем домашнем сервере Ubuntu, когда я был зарегистрирован через SSH. Даже соединение не прерывалось. cp на всякий случай, обычно процесс переустановки не касается файлов конфигурации. – pa4080 15 June 2017 в 01:04
  • 3
    Здравствуй! Я попытался переустановить, но ничего не изменилось, у меня все еще такая же проблема ... – 3rgo 15 June 2017 в 19:29

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

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