GNU/Linux >> Znalost Linux >  >> Linux

Odstraňování problémů s SSH

Tento článek ukazuje, jak řešit problémy se Secure Shell (SSH) na serveru Linux®.

Různé typy chyb

Pokud se nemůžete SSH připojit na server, měli byste věnovat pozornost chybám (nebo jejich nedostatku), které obdržíte. Následující seznam popisuje některé možné chyby.

Přístup odepřen nebo ověření odmítnuto

K tomuto typu chyby dochází vždy, když se přihlásíte přes SSH s nesprávnými přihlašovacími údaji. Pokud se zobrazí tato chyba, můžete zkontrolovat následující:

  • Ujistěte se, že jste uživatelské jméno a heslo zadali správně.
  • Pokud používáte pár klíčů SSH, ujistěte se, že máte na místním počítači nainstalován soukromý klíč.

Port 22:Připojení odmítnuto

K této chybě dochází z následujících důvodů:

  • SSH není nainstalován nebo spuštěn.
  • SSH naslouchá na jiném portu.
  • Pravidla brány firewall nepovolují SSH.

Chyba sítě:Časový limit připojení vypršel

K této chybě často dochází kvůli problémům se síťovým připojením na serveru nebo na místním počítači. Kdykoli se zobrazí tyto chyby, ujistěte se, že je váš místní počítač připojen k Internetu. Pokud je připojen, zkontrolujte také připojení k serveru a ujistěte se, že server běží.

Zkontrolujte zvenčí

Zde je několik běžných způsobů odstraňování problémů s SSH mimo váš server:

nmap

nmap je nástroj pro průzkum sítě a zabezpečení nebo skener portů. Tento nástroj můžete použít ke kontrole, zda je na serveru otevřený port pro SSH. Následující příklad poskytuje příkaz a jeho výstup:

$ nmap <ip-address-of-host>

Starting Nmap 6.40 ( https://nmap.org ) at 2020-03-21 23:44 UTC
Nmap scan report for <ip-address-of-host>
Host is up (0.033s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 4.35 seconds

ssh -vvv

Pomocí ssh pomocí -vvv flags vytváří podrobný výstup, když se připojujete SSH na server. Tento příkaz může poskytnout užitečné informace pro řešení problémů, kde přesně může být problém.

Zkontrolujte zevnitř

Máte-li problémy s SSH, můžete se přihlásit pomocí nouzové konzoly k řešení problémů se serverem a zkontrolovat následující podmínky:

Proces SSH

Nejprve se pomocí následujícího příkazu ujistěte, že je spuštěn proces SSH:

  • Pro Ubuntu® 16.04+, Debian® 8+ a Centos® 7+:systemctl status sshd
  • Pro Centos 6:service sshd status

Pokud nevidíte službu spuštěnou, můžete proces spustit pomocí následujícího příkazu:

  • Pro Ubuntu 16.04+, Debian 8+ a Centos 7+:systemctl start sshd
  • Pro Centos 6:service sshd start

netstat

netstat příkaz zobrazí aktuální připojení na serveru. Tento příkaz je dobrý způsob, jak zkontrolovat a zjistit, na kterém portu SSH běží. Když spustíte netstat , použijte příznaky -plnt získáte následující výstup:

# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp6       0      0 :::22                   :::*                    LISTEN      13631/sshd             

Konfigurační soubor SSH

Konfigurační soubor SSH, /etc/ssh/sshd_config , nastaví konfiguraci SSH. V konfiguračním souboru je mnoho možností, ale zde jsou některé, na které je třeba dávat pozor:

Port 22            <---- The port ssh runs on
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

~
~
~

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes  <---- Allows or block users logging in as root
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes  <---- Will state whether or not a user needs an ssh key to log in

Případně můžete použít grep příkaz k vyhledání těchto konkrétních řádků. Když použijete grep příkaz, musíte být konkrétní, když hledáte konkrétní frázi. Buďte opatrní s interpunkcí, velkými písmeny a pravopisem.

$ sudo grep Port /etc/ssh/sshd_config
#   Port 22

Brána firewall

Pokud máte připojení k síti, všechny konfigurace jsou správné a stále se nemůžete připojit přes SSH, možná se budete chtít podívat na pravidla brány firewall na serveru. Na serverech Linux iptables má tato pravidla. Chcete-li zobrazit seznam pravidel brány firewall v iptables , spusťte příkaz iptables -L . Chcete-li se dozvědět více o iptables , přečtěte si Úvod do iptables.

fail2ban

fail2ban je aplikace, která zablokuje IP adresu po určitém počtu neúspěšných pokusů o přihlášení. Chcete-li zkontrolovat vězení, můžete spustit příkaz fail2ban-client status . Tento příkaz vám zobrazí všechna nakonfigurovaná vězení na serveru a IP adresy, které se v těchto vězeních nacházejí.

Soubory protokolu

Když vše ostatní selže, přejděte do souborů protokolu. Tyto soubory poskytují informace o tom, zda se na server připojujete či nikoli, pokud používáte neplatné heslo a podobně. Soubory protokolu, které byste měli zkontrolovat, zahrnují následující soubory:

  • Ubuntu nebo Debian:/var/log/auth.log
  • CentOS nebo RHEL®:/var/log/secure

Při prohledávání těchto souborů protokolu můžete použít less příkaz k analýze celého souboru a vyhledání konkrétního času nebo řetězce. Pokud jste se k serveru přihlásili z konzole, můžete použít tail -f v protokolech, když se pokoušíte připojit SSH na server. Poté můžete sledovat aktualizaci souborů protokolu v reálném čase.


Linux
  1. Ssh – přesunout běžící aplikaci na jiný X server?

  2. Ssh, Sudo, pak stáhnout?

  3. Jak SSH na server pomocí jiného serveru?

  1. Jak na SSH na Linuxu z Androidu

  2. Odstraňování problémů s nefunkčním cloudovým serverem Linux

  3. Proč je moje přihlášení přes SSH pomalé?

  1. Jak povolit SSH na Debianu 9 nebo 10

  2. Odstraňování problémů s nefunkčním cloudovým serverem Windows

  3. Odstraňování problémů se vzdáleným přístupem k serveru SQL Server