Problém
Server se nepodařilo přihlásit přes ssh s níže uvedenými chybami.
Z klienta ssh:
$ ssh -vvv [email protected] OpenSSH_7.6p1, LibreSSL 2.6.2 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 48: Applying options for * debug2: ssh_connect_direct: needpriv 0 debug1: Connecting to 10.131.12.10 port 22. debug1: Connection established. debug1: key_load_public: No such file or directory debug1: identity file /Users/yaozhenqiang/.ssh/id_rsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/yaozhenqiang/.ssh/id_rsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/yaozhenqiang/.ssh/id_dsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/yaozhenqiang/.ssh/id_dsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/yaozhenqiang/.ssh/id_ecdsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/yaozhenqiang/.ssh/id_ecdsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/yaozhenqiang/.ssh/id_ed25519 type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/yaozhenqiang/.ssh/id_ed25519-cert type -1 debug1: Local version string SSH-2.0-OpenSSH_7.6 ssh_exchange_identification: read: Connection reset by peer
Ze serveru ssh:
# /usr/sbin/sshd -D -ddd ....snip.... debug1: Bind to port 22 on ::. Server listening on :: port 22. debug3: fd 5 is not O_NONBLOCK debug1: Server will not fork when running in debugging mode. debug3: send_rexec_state: entering fd = 8 config len 583 debug3: ssh_msg_send: type 0 debug3: send_rexec_state: done debug1: rexec start in 5 out 5 newsock 5 pipe -1 sock 8 debug1: inetd sockets after dupping: 3, 3 debug1: Connection refused by tcp wrapper
Řešení
ssh připojení bylo odmítnuto tcp wrapperem. Chcete-li zjistit, zda se klientský počítač může připojit k SSH, TCP wrappery odkazují na následující dva soubory:
- /etc/hosts.deny
- /etc/hosts.allow
Chcete-li zjistit, která IP adresa klienta ssh byla odmítnuta modulem TCP wrapper, postupujte podle následujících kroků:
1. Zakomentujte všechny řádky v /etc/hosts.deny a /etc/hosts.allow
2. Nyní by přihlášení ssh mělo fungovat normálně:
$ ssh [email protected] [email protected]'s password: Last login: Fri Mar 16 11:14:44 2018 from server1
3. Přejděte na ssh server, otevřete /var/log/secure a přejděte ke zprávám kolem časového razítka „Poslední přihlášení:Pá 16. březen 11:14:44 2018“ zobrazené v kroku 2, pak můžeme získat IP adresu ssh klienta, který byl dříve odmítnut TCP wrapperem.
4. Obnovte /etc/hosts.deny a /etc/hosts.allow a přidejte pod řádek v /etc/hosts.allow (řekněme, že 192.168.1.2 je IP adresa, kterou získáme v kroku 3)
# vi /etc/hosts.allow sshd:192.168.1.2:allow
5. Ověřte, zda přihlášení ssh funguje.