Я поменял свой порт 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 Перезагрузитесь и вернитесь к 6EDIT 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
Проверьте настройки порта в файле /etc/ssh/sshd_config. Убедитесь, что вы редактируете как sudo или пользователь в группе sudo. Все, что вам нужно сделать, чтобы установить порт, - это один тип строки Port 54747.. Теперь перезапустите службу ssh, запустив service sshd restart.. Затем убедитесь, что ssh прослушивает этот порт, запустив sudo netstat -lntp | grep ssh. Перезагрузка и тестирование.
Также проверьте настройки сети. Если вы находитесь в корпоративной сети, убедитесь, что вы находитесь в правильном vlan.
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
Вероятно, вы просто ответили Y, когда apt обнаружил различия между вашим sshd_config и пакетом. Он спрашивает, хотите ли вы установить версию пакета mantainer или сохранить свою.
Иногда все идет не так. Если бы я был на вашем месте, я бы попытался:
cp /etc/ssh/sshd_config $HOME
sudo apt-get --reinstall install openssh-server
Проверьте настройки порта в файле /etc/ssh/sshd_config. Убедитесь, что вы редактируете как sudo или пользователь в группе sudo. Все, что вам нужно сделать, чтобы установить порт, - это один тип строки Port 54747.. Теперь перезапустите службу ssh, запустив service sshd restart.. Затем убедитесь, что ssh прослушивает этот порт, запустив sudo netstat -lntp | grep ssh. Перезагрузка и тестирование.
Также проверьте настройки сети. Если вы находитесь в корпоративной сети, убедитесь, что вы находитесь в правильном vlan.
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
Вероятно, вы просто ответили Y, когда apt обнаружил различия между вашим sshd_config и пакетом. Он спрашивает, хотите ли вы установить версию пакета mantainer или сохранить свою.
Иногда все идет не так. Если бы я был на вашем месте, я бы попытался:
cp /etc/ssh/sshd_config $HOME
sudo apt-get --reinstall install openssh-server