ssh-Verbindung abgelehnt: Wie kann ich Fehler beheben?

17

Ich versuche:

$ ssh eric@myserver

wo myserverist eine Maschine im Intranet. Ich kann myserverüber Port 8080 usw. pingen oder auf HTTP antworten, aber wenn ich es versuche ssh, erhalte ich

ssh: connect to host myserver port 22: Connection refused

Ich benutze Ubuntu 10.

ps -ax, wie vorgeschlagen gibt:

eric@Isaiah:~$ ps -ax | grep ssh
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
 1641 ?        Ss     0:04 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session gnome-session
18376 pts/3    S+     0:00 grep --color=auto ssh
Eric Wilson
quelle

Antworten:

15

Sie haben keinen laufenden SSH-Dämon. Wenn Sie sich die Ausgabe des ps axBefehls ansehen , sehen Sie, dass in der Beschreibung nur zwei Prozesse mit 'ssh' enthalten sind ssh-agent(was sich grundlegend von dem unterscheidet sshd) und der grep sshProzess, mit dem Sie die Ausgabe filtern ps.

Abhängig von der installierten Distribution müssen Sie möglicherweise den sshServer installieren oder ausführen , der normalerweise aufgerufen wird, openssh-serveroder sshdabhängig von Ihrem Paketmanager.

Shadur
quelle
13

Schritte zum Debuggen des obigen Problems:

  1. Verwenden Sie das nmapTool, um zu ermitteln, welche Ports auf diesem Server geöffnet sind. nmapist ein Port-Scanner. Da ist es möglich, dass der ssh-Server auf einem anderen Port läuft. nmapzeigt eine Liste der offenen Ports an.

     $ nmap myserver
    

2. Jetzt können Sie überprüfen, welcher Server an einem bestimmten Port ausgeführt wird. Angenommen, in der Ausgabe von nmap ist Port 2424 offen. Jetzt können Sie mit dem Tool nc (netcat) feststellen, welcher Server auf 2424 ausgeführt wird.

 $ nc -v -nn myserver portno

Angenommen, die Ausgabe des 2424-Ports lautet:

myserver 2424 open
SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5

Dies bedeutet, dass ssh auf 2424 ausgeführt wird.

Ändern Sie weiterhin die Portnummer im obigen Befehl und überprüfen Sie, ob alle aufgelisteten Ports von nmap geöffnet sind.

pradeepchhetri
quelle
3

Das bedeutet, dass entweder der SSH-Server nicht auf diesem Computer ausgeführt wird oder die Firewall SSH nicht zulässt. Sie können mit 'ps -ax | überprüfen, ob ssh ausgeführt wird grep ssh '.

David Schwartz
quelle
Bearbeitete Frage, um die Ergebnisse von anzuzeigen ps -ax. Nicht sicher, was es bedeutet.
Eric Wilson
1
Es bedeutet sshnicht läuft.
David Schwartz
1
Seltsam. Ich bin nicht sicher, warum Sie jetzt zweimal Hilfe angeboten haben, die nicht wirklich hilfreich ist. Zuerst schlagen Sie einen Befehl vor, der nützlich ist, um zu überprüfen, ob ssh ausgeführt wird, ohne mir mitzuteilen, wie die Ergebnisse zu interpretieren sind. Dann geben Sie die minimale Interpretation dieser Ergebnisse an, ohne einen Hinweis darauf, wie Sie zu dieser Interpretation gekommen sind oder welche Maßnahme angemessen sein könnte. Ich bin mir nicht sicher, ob Sie versuchen, mir zu helfen, meine Erfahrung falsch einschätzen oder ob Sie versuchen, meine Ignoranz hervorzuheben.
Eric Wilson
3
Die Liste der Prozesse enthält keinen sshdProzess, was bedeutet, dass er sshdnicht ausgeführt wird. Die Lösung ist zu starten sshd.
David Schwartz
1

Die beiden vorherigen Optionen sind gut. Sie können auch die Argumente -voder verwenden -vv.

$ ssh -vv eric@myserver
frogstarr78
quelle
0

Ich war auch mit diesem Problem konfrontiert, aber in einer VirtualBox-Umgebung müssen wir die IP-Adresse so einstellen, dass sie sich im selben LAN-Segment befindet, um es zu lösen. beispielsweise:

Auf meinem Hostcomputer öffne ich cmdund tippe ipconfig. Ich bekomme 100.2.2.1 (zum Beispiel).

In der virtuellen Maschine müssen wir die Adresse der VM /etc/hostsauf einen Wert wie 100.2.2.3 setzen, die endgültige Nummer überprüfen und die virtuelle Maschine bouncen, aber vor dem Start der virtuellen Maschine müssen wir das Netzwerk in den Einstellungen der virtuellen Maschine konfigurieren Maschine, so müssen wir den Netzwerkadapter in Brückenverbindung setzen.

All dies ist in einer Solaris-Umgebung möglich.

Luis Torres
quelle