Я изменил свой порт SSH по умолчанию на моем домашнем сервере (в /etc/ssh/sshd_config
файл) для портирования 54747, затем перезапустил ssh
и sshd
сервисы (никогда уверенный, который, таким образом, я сделал обоих только для сейфа). Для тестирования моей конфигурации я вышел из системы и затем обратно в без любой проблемы.
Пара несколько дней спустя, я установил способные обновления и затем перезагрузил мой сервер. Когда я попробовал к SSH, въезжают задним ходом (на порте 54747), я добрался, соединение отказалось от ошибки.
По некоторым причинам я попробовал к SSH на порте по умолчанию, и он работал! Я возвратился для проверения sshd_config, но он все еще имел пользовательский порт. Таким образом, я перезапустил ssh
и sshd
сервисы, и это возвратилось к "регулярному" поведению (ssh на порте 54747). Я пытался перезагрузить снова, и соединение, которому отказывают снова...
Кто-либо знает то, что я сделал неправильно?
Дополнительные детали:
sudo reboot -h now
, но после поиска, я обнаружил, что ему препятствовали некоторые люди, таким образом, я попробовал sudo reboot
, но никакие различияПоследовательность РЕДАКТИРОВАНИЯ событий:
/etc/ssh/sshd_config
РЕДАКТИРОВАНИЕ 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
Вероятно, Вы просто ответили на Y когда способные обнаруженные различия между Вашим sshd_config и одним пакета. Это спрашивает, хотите ли Вы установить версию mantainer's пакета или сохранить Вашу.
Проверьте свои параметры порта в /etc/ssh/sshd_config
файл. Удостоверьтесь, что Вы редактируете как sudo или пользователь в sudo группе. Все, что необходимо сделать для установки порта, на одном типе Port 54747.
строки Теперь, перезапустите ssh сервис путем выполнения service sshd restart.
, Затем проверяют, что ssh слушает на том порте путем выполнения sudo netstat -lntp | grep ssh.
Перезагрузка и тест.
Также проверяют Ваши параметры сети. Если Вы находитесь в корпоративной сети, удостоверьтесь, что Вы находитесь в корректном VLAN.
Иногда вещи просто идут не так, как надо. Если бы я был на Вашем месте, то я попробовал бы:
cp /etc/ssh/sshd_config $HOME
sudo apt-get --reinstall install openssh-server
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
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 демон ранее работал.
Возможные причины, о которых я могу думать
/usr/lib/systemd/system/sshd.socket
по-видимому: https://www.vultr.com/docs/how-to-change-ssh-port-on-coreos