7 Windows 7 mit SSH-Server per Cygwin scheitert

Der-Typ

Commander
Mitglied seit
12.05.2006
Beiträge
179
Renomée
1
Hallo,

ich habe bereits einmal unter Vista (32bit) mit Hilfe der Anleitung http://www.zdnet.de/sicherheit_in_der_praxis_unix_power_fuer_windows_cygwin_1_7_ruestet_den_pc_auf_story-39001543-41500968-1.htm Cygwin und dessen SSH-Server erfolgreich eingerichtet.

Nun bin ich auf Windows 7 (64bit) umgestiegen und wollte wieder den SSH-Server auf die selbe Art und Weise einrichten.
Das Einrichten ansich und Starten als Dienst hat auch funktioniert. Ich bin mir also sicher dass der SSH-Server läuft.

Versuche ich mich jedoch per Cygwin-Bash mit dem Befehl ssh localhost anzumelden erhalten ich die Meldung
ssh: Could not resolve hostname localhost: hostname nor servname provided, or not known.

Also habe ich es mit ssh 127.0.0.1 versucht. Das Resultat lautet
ssh_connect: getnameinfo failed
ssh: connect to host 127.0.0.1 port 22: Operation not permitted


Mit Putty habe ich es ebenfalls versucht:
localhost -> server unexpectedly closed network connection
127.0.0.1 -> network error connection refused

Im sshd.log steht gar nichts.
Ich habe auch schon die Suchmaschine meines Vertrauens mit den Fehlermeldungen gequält. Wie man sieht ohne Erfolg.

Hat jemand von euch den Openssh-Server über Cygwin ind Window 7 64bit laufen?

Nochmal als Hinweis. Ich will nur lokal auf den eigene Rechner zugreifen, also wird es schon mal keine Port oder Routergeschichte sein. Hab es auch mit deaktivierter Windows-Firewall versucht.

Wäre für Hinweise sehr dankbar.
 
Zuletzt bearbeitet:
Prüf erstmal, ob der Dienst sich auf den Port 22 verbindet, ich glaube da auf einem 64 Bit Windows erstmal nicht dran. CurrPorts könnte dabei behilflich sein, obwohl ich nicht weiß, ob das unter x64 läuft *buck*.

MfG Dalai
 
TCPView und netstat sind zumindest der Meinung, dass sshd am Port 22 lauscht.
Wenn ich den Dienst beende, dann lauscht nichts an 22.

Denke also, dass das so passt.
 
Ist der SSHD in der Firewall freigeschaltet, dass also die Programme da auch drauf kommen?

MfG Dalai
 
Hab sowohl den Port in der Firewall geöffnet wie auch die ganze Firewall deaktiviert.
 
Mit Telnet kann ich mich erfolgreich verbinden.

Und mit traceroute scheint auch alles in Ordnung zu sein:
C:\Users\wilhelm>tracert localhost

Routenverfolgung zu coconut [::1] über maximal 30 Abschnitte:

1 <1 ms <1 ms <1 ms coconut [::1]

Ablaufverfolgung beendet.


ifconfig kennt mein Rechner leider nicht. Habe es bei Cygwin auch nicht zu nachinstallieren gefunden.
 
Der-Typ schrieb:
Mit Telnet kann ich mich erfolgreich verbinden.

Das ergibt irgendwie keinen Sinn, denn mit Putty wird doch die Verbindung abgewiesen.

Bitte gib mal das komplette protokoll vom telnet versuch. Und zwar diesmal sowohl mit localhost als auch mit 127.0.0.1 als auch mit ...coconut?

Und mit traceroute scheint auch alles in Ordnung zu sein:
C:\Users\wilhelm>tracert localhost

Routenverfolgung zu coconut [::1] über maximal 30 Abschnitte:

1 <1 ms <1 ms <1 ms coconut [::1]

Ablaufverfolgung beendet.

Wie sieht denn Deine Datei hosts aus?

ifconfig kennt mein Rechner leider nicht. Habe es bei Cygwin auch nicht zu nachinstallieren gefunden.

Mein Fehler. Ich hab mein cygwin zur Zeit ohne Netzwerk installiert.
 
Danke erstmal für die ganze Tipps.

Die Verbindung wird in Putty zum SSH-Server abgewiesen. Mit Telnet hab ich mich bisher einfach über die normale Kommandozeile verbunden. Aber mit Putty komm ich auch auf den Telnet-Server.

Die Verbindung zu Telnet wird wie folgt hergestellt:
Code:
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\wilhelm>telnet localhost
Code:
Willkommen

Das Escapezeichen ist 'CTRL++'


Sie sind im Begriff, Ihr Kennwort an einen Remotecomputer in Zone "Internet" zu senden. Dies ist mög
licherweise nicht sicher. Möchten Sie das Kennwort trotzdem senden (y/n)?
Ein 'y' führt mich dann zum Login und ich bin drin. Das selbe mit 127.0.0.1 und coconut (name des Rechners).


Die hosts-Datei aus c:\windows\system32\drivers\etc\hosts
Code:
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost
Könnte das ein Problem sein, dass die beiden letzten Zeilen scheinbar auskommentiert sind?
 
Zuletzt bearbeitet:
Ähm, du weißt, dass telnet in deiner Variante auf Port 23 verbindet? Du musst ihm schon sagen, dass er Port 22 nutzen soll:
Code:
telnet localhost 22

MfG Dalai
 
Ähm, du weißt, dass telnet in deiner Variante auf Port 23 verbindet? Du musst ihm schon sagen, dass er Port 22 nutzen soll:
Code:
telnet localhost 22

MfG Dalai
Ja, ich wusste schon, dass er über 23 geht. Ich versteh das jetzt nicht so ganz.
Soll ich mich mit dem Telnetclient am SSH-Server anmelden? Beinhaltet SSH auch Telnet oder wie?
Oder soll ich den Telnet-Server an der 22 lauschen lassen? Wüsste aber nicht was mir das bei der Diagnose zum SSH-Server bringen sollte.
 
Zuletzt bearbeitet:
Ja, ich wusste schon, dass er über 23 geht. Ich versteh das jetzt nicht so ganz.

Telnet ist quasi das Schweitzer Taschenmesser beim verbinden mit irgendwelchen Ports. Sobald ein Server auf dem Port lauscht kannst Du Dich mit Telnet verbinden und sobald Du verbunden bist weißt Du das der Server auf den Port lauscht - auch wenn danach gar keine Kommunikation mehr stattfindet weil das Protokoll nicht paßt.

Also

telnet localhost 22
 
Da hab ich Telnet wohl unterschätzt. Hab es immer für "Müll" gehalten ;-)

Jedenfalls hab ich es jetzt mit
telnet localhost 22
versucht.

Es kommt für Sekundenbruchteile Verbindungsaufbau zu localhost... und nach paar Sekunden bin ich wieder an meinem Ausgangspunkt.

Das selbe für ::1.

Bei 127.0.0.1 passiert was anderes, aber auch nicht besser. Wenigstens ne Meldung:
C:\Users\wilhelm>telnet 127.0.0.1 22
Verbindungsaufbau zu 127.0.0.1...Es konnte keine Verbindung mit dem Host hergest
ellt werden, auf Port 22: Verbindungsfehler


NACHTRAG:
Hab jetzt nochmal das parallele alte Vista rausgekrammt und mir das noch mal mit tcpview angeschaut.
Vista:
sshvista.jpg

Win7:
sshbr.jpg


Wie man sehen kann, ist unter Vista eine Zeile mehr da. Liegts daran?
Läuft das nun nur über IPv6? Aber ich habe es doch auch mit ::1 versucht.
 
Zuletzt bearbeitet:
Telnet bleibt auch Müll, wenn man es ausschließlich für sowas verwenden kann ;D.

Was passiert bei
Code:
telnet coconut 22
?

MfG Dalai
 
Passiert das gleich wie bei telnet localhost 22.

Sieht so aus als müsste ich erstmal ohne den SSH-Server leben müssen.
 
Irgendwie passt da noch was nicht. Es sieht für mich so aus, als blockiert da noch ne Firewall oder sowas in der Richtung.

MfG Dalai
 
Aber was soll da noch blockieren? Die Firewall hab ich doch auch deaktiviert.
Sonst läuft da nichts "firewallartiges".

Wenn sich jemand melden würde der den SSH-Server unter Win7 64-Bit laufen hat, dann hätte ich noch Hoffnung. Hab keinen Plan was ich noch probieren kann.

Trotzdem vielen Dank für die Tipps.
 
schau mal ob bei dir der "Microsoft Live Login Assistent" (oder so ähnlich) installiert ist.
schmeiss den mal runter, der hat bei mir probleme gemacht wenn ich mich mit samba auf windowsfreigaben connecten wollte. eventuell ist es hier das selbe problem.

kannst ja nen wiederherstellungspunkt erstellen sollte er es nicht sein. besonders wichtig ist er aber nicht. zumindest hab ich keine einschränkungen der live dienste bemerkt durch das deinstallieren.
 
Es ist nichts in der Art installiert. Weder unter den üblichen "Programme und Funktionen" noch unter "Windows-Funktionen aktivieren oder deaktivieren".

NACHTRAG:
Hab jetzt mal aus der bash von Cygwin versucht mich auf dem SSH-Server meiner Uni anzumelden.
Resultat:
ssh_connect: getnameinfo failed
ssh: connect to host 141.83.143.222 port 22: Operation not permitted


Also das gleiche wie wenn ich es mit 127.0.0.1 versuche. Da scheint allgemein was mit dem Cygwin-SSH nicht zu stimmen. Oder ich bin halt zu blöd.
Aber das kann ich fast ausschließen ;-)
 
Zuletzt bearbeitet:
Da hab ich Telnet wohl unterschätzt. Hab es immer für "Müll" gehalten ;-)

Jedenfalls hab ich es jetzt mit
telnet localhost 22
versucht.

Es kommt für Sekundenbruchteile Verbindungsaufbau zu localhost... und nach paar Sekunden bin ich wieder an meinem Ausgangspunkt.

Bitte ein screenshot oder capture davon. Hast Du das aus cygwin oder aus cmd heraus gemacht?

(ich habe irgendwie den schwachen Verdacht das Du in cygwin gar kein Netzwerk hast)
 
Das hab ich per cmd gemacht. Cygwin kennt den Befehl Telnet gar nicht.

Folgendes Fenster schließt sich nach Eingabe:
unbenannt1al.png


Dann kommt für eine Weile das:
unbenannt1br.jpg


Dann schließt es sich und ich lande wieder bei der Eingabe.

Was bedeutet in Cygwin kein Netzwerk? Wozu auf Localhost?
 
Zuletzt bearbeitet:
Das hab ich per cmd gemacht. Cygwin kennt den Befehl Telnet gar nicht.

Dann würde ich vorschlagen Du erklärst ihm den Befehl: http://cygwin.com/cgi-bin2/package-grep.cgi?grep=telnet.exe


Was bedeutet in Cygwin kein Netzwerk?

Ich bin etwas verwirrt und weis ehrlich gesagt nicht welchen Teil von "in Cygwin kein Netzwerk" Du nicht verstanden hast. Ich meine damit das Dein Cygwin möglicherweise ganz grundsätzlich nicht zur Kommunikation via TCP/IP fähig ist. Dann wäre sshd nicht Dein eigentliches Problem.


Wozu auf Localhost?

Zum testen. Localhost ist in der Regel das erste was funktioniert und das letzte was nicht funktioniert. Wenn Du probleme mit Routing oder DNS hast - localhost funktioniert meist trotzdem noch.

Umgekehrt: Wenn Du irgendwas im Internet anpeilst ist die Liste der Hard- und Softwarekomponenten die auf dem Weg dahin Ärger machen können ellenlang. Einen Fehler einzugrenzen wird damit aufwändiger.
 
Okay, dann versuche ich mal Telnet dem guten Cygwin vorzustellen.

Ich hatte nicht kapiert ob du meinst, das Cygwin keinen physikalischen Zugang zum eigentlichen Netzwerk hat. Den brauch ich ja erstmal nicht, da ich ja wie du schon sagtest das ganze erstmal wenigstens auf localhost laufen haben will.

Kann es denn sein, dass Cygwin kein TCP/IP beherrscht?:o
 
Zuletzt bearbeitet:
Der-Typ schrieb:
Kann es denn sein, dass Cygwin kein TCP/IP beherrscht?:o

Cygwin allgemein kann das ganz sicher. Du hattest es ja selbst schon so am laufen.

Aber Deine konkrete Installation kann faul sein. Ich selbst habe es auch mal geschafft mein Cygwin so zu installieren das im Netz gar nichts ging (jetzt weißt Du wie ich auf die Idee komme).
 
Das ist ja alles sehr interassent. Anscheinend ist mein Cygwin wirklich nicht netzwerkfähig, nichtmal auf localhost.

Telnet-Server läuft lokal und ich komme per Windows-Kommandozeile auch drauf.

Nun hab ich das ganze per Cygwin-Bash probiert:
(Eingabe -> Resultat)
telnet localhost 23 -> Can't lookup hostname localhost
telnet 127.0.0.1 23 -> Trying 127.0.0.1...
telnet: socket: Operation not permitted
telnet ::1 23 -> Can't lookup hostname ::1

Ich komme also nichtmal per Cygwin-Bash auf den Telnetserver.
Wenn ich damit den SSH-Server ansprechen möchte (Port 22) kommen identische Meldungen.

Und nun? Cygwin hab ich nun schon gefühlte 1000 mal neu installiert.
 
Zurück
Oben Unten