Ich versuche, mit OpenSSH einen SSH-Server auf meinem lokalen Computer einzurichten. Wenn ich versuche, von einem Remotehost auf meinen lokalen SSH-Server eine SSH-Verbindung herzustellen, antwortet der SSH-Server nicht und die Anforderung läuft ab. Ich bin mir ziemlich sicher, dass es eine wirklich offensichtliche Lösung dafür gibt, die ich einfach übersehen habe.
Folgendes passiert, wenn ich versuche, SSH von einem Remote-Host aus auszuführen:
yoshimi@robots:/$ ssh -vv [email protected]
OpenSSH_6.7p1 Debian-5, OpenSSL 1.0.1k 8 Jan 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 99.3.26.94 [99.3.26.94] port 22.
debug2: fd 3 setting O_NONBLOCK
debug1: connect to address 99.3.26.94 port 22: Connection timed out
ssh: connect to host 99.3.26.94 port 22: Connection timed out
Wo robots
ist mein Remote-Host und 99.3.26.94
ist mein lokaler SSH-Server.
SSH wird ausgeführt
volt@arnold:~$ ps -A | grep sshd
5784 ? 00:00:00 sshd
Wo arnold
ist mein lokaler SSH-Server?
Die Portweiterleitung ist auf dem Router eingerichtet
Ich habe meinen Heimrouter so eingerichtet, dass er die Ports 80 und 22 an meinen SSH-Server weiterleitet. Interessanterweise funktionierte Port 80 problemlos - es wird direkt in das Apache-Webverzeichnis gewechselt. Port 22 - nicht so sehr.
NMap sagt, es ist gefiltert
yoshimi@robots:/$ nmap -p 22 99.3.26.94
Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-02 14:45 EDT
Nmap scan report for 99-3-26-94.lightspeed.bcvloh.sbcglobal.net (99.3.26.94)
Host is up (0.33s latency).
PORT STATE SERVICE
22/tcp filtered ssh
Nmap done: 1 IP address (1 host up) scanned in 7.59 seconds
Wo robots
ist mein Remote-Host und 99.3.26.94
ist mein lokaler SSH-Server.
Es ist nicht IPTables (ich denke)
volt@arnold:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-ssh (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
... und ich habe keine anderen Firewalls installiert - es ist ein relativ frisches Debian-Netzwerk.
Also dann: Was könnte es noch sein? Es scheint auf jeden Fall eine Art Firewall zu sein, um den Datenverkehr einfach zu ignorieren, aber wenn es nicht der Router ist, dann sind es keine iptables und es ist keine weitere Firewall auf dem SSH-Server. Was zum Teufel gibt es noch?
BEARBEITEN: Verbindungsanforderung von internem Netzwerkfehler
yoshimi@robots:/$ ssh [email protected]
ssh: connect to host 192.168.1.90 port 22: No route to host
arping remotehost
annimmt, nur eine Hardware- Adresse beantworten muss, und dann, ob die Hardware-Adresse identisch ist. Überprüfen Sie dann die Auflösung mitdig remotehost
und unddig -x remoteip
, ob der Remote-Host nicht auf 127.0.0.1 zeigt / etc / hosts von remote.Und versuchen Sie schließlich, die Firewall zu deaktivieren, und prüfen Sie, ob der ssh-Prozess ausgeführt wird.tail -f
welche Protokolldatei (en) Sie sshd für die Ausgabe verwiesen haben. Wenn die Protokolle absolut nichts enthalten, liegt wahrscheinlich ein Problem zwischen den beiden Geräten vor, nicht auf dem SSH-Server.Antworten:
Eine sehr enttäuschende Selbstantwort
Nachdem ich dieses Problem für einen Tag beiseite gelegt hatte und darauf zurückkam, war ich erleichtert und beunruhigt (eher beunruhigt als erleichtert), als ich feststellte, dass alles auf mysteriöse Weise richtig funktionierte.
Also, was war das Problem?
Es wurden keine Einstellungen geändert oder angepasst - nicht auf dem Router, nicht auf dem SSH-Server und nicht auf dem Computer des SSH-Clients. Man kann mit ziemlicher Sicherheit sagen, dass der Router den eingehenden Datenverkehr trotz der richtigen Einstellungen nicht ordnungsgemäß verarbeitet. Angesichts der Tatsache, dass dinky Home Router-Software nicht wirklich für die Portweiterleitung ausgelegt ist, hat der arme Kerl eine Weile gebraucht , um die notwendigen Änderungen umzusetzen.
Aber es ist wie 6 Stunden gewesen !!
Ja Alter, ich weiß. Ich verbrachte den ganzen Tag versucht , herauszufinden , was falsch war - und nicht immer es finden , weil es nicht war etwas nicht in Ordnung. Offensichtlich kann es 6 Stunden - möglicherweise länger - dauern, bis die Router-Einstellungen wirksam werden.
Woher weiß ich, ob dies mein Problem ist?
Ein nützliches Werkzeug, das mir bei dieser Eskapade begegnet ist, ist
tcpdump
. Dieser schlanke kleine Kerl schnüffelt nach Verkehr und bietet wertvolle Einblicke in die tatsächlichen Vorgänge. Außerdem hat er einige hervorragende Filterfunktionen, mit denen Sie genau eingrenzen können, wonach Sie suchen. Zum Beispiel der Befehl:Tells
tcpdump
suchen Verkehr über die wlan1 - Schnittstelle (-i
= ‚Schnittstelle‘), nur über Port 22, ignoriert DNS - Namensauflösung (-n
= 'no - Namensauflösung), und wir wollen sowohl ein- und ausgehenden Datenverkehr sehen (-Q
nimmtin
,out
oderinout
;inout
ist die Standardeinstellung).Wenn Sie diesen Befehl auf Ihrem SSH-Server ausführen, während Sie versuchen, eine Verbindung über einen Remotecomputer herzustellen, wird schnell klar, wo genau das Problem liegt. Grundsätzlich gibt es 3 Möglichkeiten:
SYN
Pakete des Remotecomputers werden vom Router ignoriert und verworfen, bevor sie überhaupt Ihren Server erreichen.Und sobald Sie herausgefunden haben, wo das Problem liegt, ist eine Lösung (normalerweise) trivial.
quelle
Ich verwende Mint (Ubuntu).
Ich hatte alles getan ... öffentlicher Schlüssel im richtigen Format in authorized_keys, chmodding, chowning, ssh und sshd neu starten usw. Wie alles überall dokumentiert wurde.
Für mich war es die ufw Firewall. Das Fehlen einer SSH-Antwort hat mich darauf aufmerksam gemacht, aber ich konnte kein Problem in beide Richtungen in einem LAN anpingen.
Ich habe getestet von:
... und es hat perfekt funktioniert, dh ich habe eine Antwort von einem SSH-Anruf erhalten.
Also starte ufw nochmal:
... und füge die Regel hinzu:
Alles funktioniert jetzt gut.
quelle
ufw
) löste mein Problem auf Ubuntu 16.04. Ich hatte Jenkins Installationsanweisungen blind befolgt und dabei aktiviertufw
. Nach dem Deaktivieren funktioniert sshd wieder.Wenn Sie wie ich UFW aktiviert haben (in meinem Fall unter Linux Ubuntu), versuchen Sie Folgendes:
Dies ermöglicht OpenSSH in der Firewall.
quelle
Nur für andere:
Ich musste die Option -P in tcpdump anstelle von -Q verwenden
quelle
Die meiste Zeit ist Firewall ein Schuldiger. Tun
service iptables stop
undservice ip6tables stop
.Wenn das Beenden des Dienstes nicht funktioniert, führen Sie eine iptable-Spülung durch.
Wenn es sich um eine VM handelt, machen Sie dasselbe auch im Host
quelle