GNU/Linux >> Znalost Linux >  >> Ubuntu

Ssh se po restartu resetuje na výchozí port?

Změnil jsem svůj výchozí port SSH na svém domovském serveru (v /etc/ssh/sshd_config soubor) na port 54747 a poté restartujte ssh a sshd služby (nikdy si nejsem jistý kterou, tak jsem pro jistotu udělal obě). Abych otestoval svou konfiguraci, bez problémů jsem se odhlásil a poté znovu přihlásil.

O pár dní později jsem nainstaloval aktualizace apt a poté restartoval svůj server. Když jsem se pokusil znovu připojit SSH (na portu 54747), zobrazila se chyba odmítnutí připojení.

Z nějakého důvodu jsem zkusil SSH na výchozí port a fungovalo to! Vrátil jsem se ke kontrole sshd_config, ale stále měl vlastní port. Takže jsem restartoval ssh a sshd služby a vrátilo se k „normálnímu“ chování (ssh na portu 54747). Pokusil jsem se restartovat znovu a připojení bylo znovu odmítnuto…

Ví někdo, co jsem udělal špatně?

Další podrobnosti:

  • Ubuntu 16.04.2 LTS
  • Server se také používá jako HTPC s otevřenou relací (stejný uživatel jako SSH) na mé televizi
  • Používám SSH klíč RSA svého notebooku a mám vypnuté ověřování hesla
  • Kdysi jsem restartoval pomocí sudo reboot -h now , ale po hledání jsem zjistil, že to někteří lidé odrazují, a tak jsem zkusil sudo reboot , ale žádné rozdíly

UPRAVIT
Posloupnost událostí:

  1. Změňte port SSH z 22 na 54747 v /etc/ssh/sshd_config
  2. Restartujte služby ssh a sshd
  3. Ukončit aktuální relaci SSH
  4. SSH se úspěšně vrátilo na port 54747
  5. Restartovat
  6. Chyba připojení SSH na portu 54747, ale úspěšné na portu 22
  7. Restartujte služby ssh a sshd
  8. SSH se úspěšně vrátilo na port 54747, chyba připojení na portu 22
  9. Restartujte a vraťte se na 6

ÚPRAVA 1: netstat výstup

[email protected]:~$ sudo netstat -lntp | grep :54747
[email protected]:~$ sudo netstat -lntp | grep :22
tcp6       0      0 :::22                   :::*                    LISTEN      1/init  

ÚPRAVA 2: service sshd status

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

ÚPRAVA 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)

Pro informaci, ATLAS je název hostitele vzdáleného serveru, 192.168.1.27 je IP LAN mého notebooku a příkaz byl proveden mezi kroky 6 a 7

ufw status

Status: inactive

ÚPRAVA 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: [email protected]/1 sshd

Přijatá odpověď:

ssh může být „socket aktivován“ systemd v závislosti na konfiguraci, což znamená, že zpočátku je to systemd, kdo nastavuje naslouchací port, a sshd se spustí pouze tehdy, když se klient poprvé připojí. Důvodem je urychlení doby spouštění:servisní démoni se spouštějí pouze na vyžádání.

Související:Jak zaznamenat obrazovku v Ubuntu?

To však znamená, že musíte také nakonfigurovat systemd na odpovídající port. Konfiguraci systému najdete v /lib/systemd/system/ssh.socket který uvádí ListenStream=22 . Chcete-li to přepsat, vytvořte soubor /etc/systemd/system/ssh.socket.d/port.conf (vytvořením adresáře ssh.socket.d v případě potřeby), který obsahuje:

[Socket]
ListenStream=
ListenStream=54747

Změňte číslo na požadovaný port. První prázdná položka vymaže předchozí výchozí hodnotu a následující položka přidá novou. Toto přepíše výchozí nastavení dodávané v /lib/systemd/system/ssh.socket a musí být provedeno kromě změna /etc/ssh/sshd_config .

Poté spusťte sudo systemctl daemon-reload informovat systemd o vašich změnách a sudo systemctl reload ssh pokud váš démon ssh dříve běžel.


Ubuntu
  1. Nasazení Kippo SSH Honeypot na Ubuntu Linux

  2. Jak nastavit SSH tunelování

  3. Jak změnit port SSH na Lubuntu 20.04 Linux

  1. Připojujete Ssh tunel při restartu?

  2. Mám změnit výchozí port SSH na linuxových serverech?

  3. HTTPS SSH tunel

  1. Jak změnit port SSH v CentOS

  2. Změňte port SSH v CWP

  3. Změňte výchozí číslo portu serveru SSH