2013-05-18 19 views
7

Ich habe versucht "ssh localhost" auf Cygwin (ich verwende Windows 7), aber es fragt nach dem Passwort.Public Key Authentifizierungsprobleme auf Cygwin

Als ich "ssh -vvv localhost" gemacht habe, fand ich heraus, dass die Authentisierung des öffentlichen Schlüssels nicht stattfand (oder scheiterte). Daher wurde nach dem Passwort gefragt.

debug1: Authentications that can continue: publickey,password,keyboard-interactive 
debug3: start over, passed a different list publickey,password,keyboard-interactive 
debug3: preferred publickey,keyboard-interactive,password 
debug3: authmethod_lookup publickey 
debug3: remaining preferred: keyboard-interactive,password 
debug3: authmethod_is_enabled publickey 
debug1: Next authentication method: publickey 
debug1: Offering RSA public key: /home/xxxxxxxx/.ssh/id_rsa 
debug3: send_pubkey_test 
debug2: we sent a publickey packet, wait for reply 
debug1: Authentications that can continue: publickey,password,keyboard-interactive 

Ich bin mir nicht sicher, ob es nicht in der Lage ist, die authorized_keys-Datei zu lesen, oder wenn ein Timeout Problem dabei ist, oder versäumte die Authentifizierung? Gibt es eine Möglichkeit, mehr Details zu erfahren?

Ich habe die folgenden Schritte:

  • ssh-host-config. Beantwortete alle.
  • Generierte den RSA-Schlüssel und fügte ihn der Datei authorized_keys hinzu.
  • net start sshd
  • ssh localhost

Dies sind die Berechtigungen:

-rw------- 1 xxxxxxxx mkgroup 402 May 18 16:34 authorized_keys 
-rw------- 1 xxxxxxxx mkgroup 1675 May 18 16:33 id_rsa 
-rw-r--r-- 1 xxxxxxxx mkgroup 402 May 18 16:33 id_rsa.pub 
-rw-r--r-- 1 xxxxxxxx mkgroup 171 May 18 14:33 known_hosts 

Es gibt ein paar Probleme auch: - Die Gruppe als mkgroup angezeigt wird. - Der Benutzer "xxxxxxxx" existiert nicht im localhost, denke ich. Es wurde nicht in "net user sshd" angezeigt. "xxxxxxxx" ist ein Domänenkonto. Könnte dies das Problem der Authentifizierung mit öffentlichen Schlüsseln verursachen?

Nur um zu sehen, ob es einen Unterschied in der Ausgabe gibt, löschte ich die Datei authorized_keys und versuchte es. Es gab keinen Unterschied in der Ausgabe. Es sendet immer noch ein Paket und geht zum nächsten Authentifizierungsmodus über. Es gibt keine Fehlermeldung. Gibt es einen anderen Weg, um mehr Details zu bekommen (ich bin ein Cygwin und SSH n00b)? Ich möchte feststellen, dass es beim Lesen der Datei authorized_keys fehlschlägt.

+0

Haben Sie eine Art von NAT? Manchmal kann es zu einer mangelnden Verbindung kommen. – Hubbitus

Antwort

0

Zumindest müssen Sie

chmod 700 id_rsa 

Dies ist my setup wenn es

hilft
 
-rwx------ 1 Steven None 1675 May 17 12:49 id_rsa 
-rwx------ 1 Steven None 399 May 17 12:49 id_rsa.pub 
-rwx------ 1 Steven None 803 May 18 01:13 known_hosts 
+0

Hallo Steven, danke für deine Antwort. Es funktioniert nicht für mich. Gibt es irgendeinen Weg mehr Details zu erfahren als was "ssh -vvv localhost" bietet? Ich denke, dass ich in der Lage wäre, weiter zu gehen, wenn ich weiß, was das Problem ist. Ich bin ab jetzt ahnungslos. Ich vermute, dass meine Gruppe das Problem verursacht. Dein sagt "keiner", aber meiner ist "mkgroup". – Naveen

0

Es scheint, dass es einige Probleme mit Ihrem Cygwin Setup sind, weshalb der Benutzer/Gruppe wird nicht korrekt angezeigt. Sie müssen mkgroup ausführen, um Ihre/etc/group und möglicherweise auch mkpasswd zu generieren. Ich hatte ein ähnliches Problem - ich musste mkpasswd ausführen, um meine/etc/passwd zu regenerieren. Nachdem ich mkpasswd ausgeführt hatte, konnte ich endlich in meinen localhost gehen. Es ist eine Schande, dass die Debug-Informationen nicht genügend Informationen protokollieren, um das Problem einfach zu diagnostizieren.

Diese Seite beschreibt, mehr über Windows-Sicherheit in Cygwin: http://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-setuid-overview

2

Schnell doppelter Kontrolle, haben Sie Ihren öffentlichen Schlüssel oder private Schlüssel in der authorized_keys? Es muss Ihr öffentlicher Schlüssel sein.

Ich stelle fest, dass der Server nicht reagiert mit einem "Server akzeptiert Schlüssel ..." nach Erhalt Ihrer pubkey_test und ich habe gesehen, wenn der öffentliche Schlüssel fehlt aus der Datei authorized_keys auf dem Server, mit dem Sie verbinden .Sie sollten sehen:

debug3: send_pubkey_test 
debug2: we sent a publickey packet, wait for reply 
debug1: Server accepts key: pkalg ssh-rsa blen 279 

Der einfachste Weg, um es einzurichten ist ssh-copy-id zu tun, um die Arbeit, zB ,:

# ssh-copy-id localhost 

Das Ihre authorized_keys mit den richtigen Berechtigungen Datei erstellen wird verwenden . Wenn Sie das ausführen, werden Sie aufgefordert, Ihr Kennwort einzugeben, da der Server nicht über den Schlüssel verfügt. Sobald dieser Befehl erfolgreich ausgeführt wurde, können Sie mithilfe Ihrer Identitätsdatei einfach auf den Server zugreifen. Beachten Sie, dass ssh_config die Identitätsdatei standardmäßig auf ~/.ssh/identity, ~/.ssh/id_rsa, ~/.ssh/id_dsa setzt. Wenn Sie also eine andere Datei verwenden möchten, sollten Sie in ~/.ssh einen Alias ​​einrichten/Konfig.

Hoffe, das hilft.

0

Ich hatte ein ähnliches Problem beim Einrichten der Authentifizierung mit öffentlichen Schlüsseln (mit ähnlicher ausführlicher Ausgabe vom Client), obwohl ich versuchte, es von einem Ubuntu-Client zu einem Cygwin SSHD-Server zu machen, und es war eine sehr alte Cygwin-Umgebung (Version 1.5.12 unter Windows 2000!). Ich hatte den öffentlichen Schlüssel mit ssh-copy-id kopiert.

In meinem Fall erschien die Authentifizierung der authorized_keys-Dateien (Modus 644) auf der Cygwin-Seite, um die Authentifizierung mit öffentlichen Schlüsseln zu ermöglichen.

Von dem, was ich gesehen habe, ist der Modus 600 Standard, also ist diese "Reparatur" in meinem Fall tatsächlich ein Zeichen für ein Problem an anderer Stelle im Cygwin SSHD Setup. Aber jetzt, wo die Pub-Key-Authentifizierung endlich funktioniert, werde ich wahrscheinlich nicht tiefer graben.

Verwandte Themen