Unter Ubuntu 12.04 habe ich den OpenSSH-Server eingerichtet. Ich kann mich innerhalb des LANs verbinden, aber nicht von außen. Ich verwende dieselbe sshd_config
Datei wie auf meinen anderen Ubuntu 12.04-Computern (die sich in einem anderen LAN befinden).
$ ssh 192.168.0.2
funktioniert gut, aber
$ ssh 65.76.97.222
(erfundene IP-Adresse) funktioniert nicht. Nichts passiert. Keine Fehlermeldung oder so. Die Eingabeaufforderung befindet sich einfach dort.
Dank der folgenden Kommentare konnte ich über die Websites canyouseeme.org und ShieldsUP überprüfen, ob Port 22 tatsächlich geöffnet ist.
Mit der Option -vvv
erhalte ich Folgendes:
$ ssh -vvv 65.76.97.222
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
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 65.76.97.222 [65.76.97.222] port 22.
debug1: Connection established.
debug1: identity file /home/myname/.ssh/id_rsa type -1
debug1: identity file /home/myname/.ssh/id_rsa-cert type -1
debug1: identity file /home/myname/.ssh/id_dsa type -1
debug1: identity file /home/myname/.ssh/id_dsa-cert type -1
debug1: identity file /home/myname/.ssh/id_ecdsa type -1
debug1: identity file /home/myname/.ssh/id_ecdsa-cert type -1
Und dann sitzt die Eingabeaufforderung einfach da.
Weitere Debug-Informationen von var/log/auth.log
:
$ grep sshd /var/log/auth.log
[cutting old lines...]
Jul 6 10:23:05 mymachine sshd[7871]: Did not receive identification string from 65.76.97.222
Ich erlaube jedem Benutzer, eine Verbindung herzustellen, insbesondere meinen eigenen Benutzernamen. Was mich verwirrt ist, dass ich dieses Problem auf keinem anderen Computer hatte, obwohl sie sich auf einem anderen LAN befinden. An dieses LAN ist nur ein Computer angeschlossen. Irgendwelche Ideen, wie man von hier aus vorgeht?
-v
,-vv
, bis-vvv
) zusätzliche Informationen re zu erhalten: die Verbindung. zB ,ssh -vvv -p 51555 65.76.97.222
.Antworten:
Ein paar Dinge, die Sie überprüfen müssen.
Überprüfen Sie
/etc/ssh/sshd_config
, ob Sie keine lustigenAllowUsers
Einträge haben.Geben Sie den Benutzer an, zu dem Sie eine Verbindung herstellen möchten:
Überprüfen Sie Ihre Firewall (
iptables
):quelle
Überprüfen Sie, ob Ihr Gateway auf dem SSH-Server auf den Router eingestellt ist, der die Portweiterleitung durchführt.
route -n
Die Standardroute sollte auf diesen Router zurückweisen, andernfalls können Sie Verbindungen über diesen Router herstellen, aber die ACKs gehen nirgendwo hin!
quelle
Um zu überprüfen, ob die Portweiterleitung ordnungsgemäß funktioniert, gehe ich normalerweise zu https://www.grc.com/shieldsup > Weiter> Geben Sie Ihre Portnummer in das Feld ein und klicken Sie auf Benutzerdefinierte benutzerdefinierte Portsonde. Das sollte Ihnen sagen, ob dieser TCP-Port tatsächlich für die Öffentlichkeit zugänglich ist
quelle
grep sshd /var/log/auth.log
auth.log
:Jul 6 10:23:05 mymachine sshd[7871]: Did not receive identification string from 65.76.97.222
Erklären Sie einen Benutzer?
ssh [email protected] -p51555
Wenn Sie den Code so angegeben haben, wie Sie ihn verwenden, wird meiner Meinung nach standardmäßig der aktuelle Benutzername verwendet.
Darüber hinaus benötigen Sie einen Benutzer mit Berechtigung im TARGET-System. im obigen Beispiel "Jimmy"
quelle
sshd_config
erlaube außerdem jedem Benutzer, eine Verbindung herzustellen .