PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ssh & dsa



Tocotac
22.09.02, 22:24
so, nun wollte ich mich mal an meinen sshd ranmachen.
login funzt ja alles, baer nur über protocol 1.

meine sshd_config sieht so aus:


Port 22
Protocol 2,1
# HostKey for protocol version 1
HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
SyslogFacility DAEMON
#LogLevel INFO
LoginGraceTime 600
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile ~/.ssh/key
# rhosts authentication should not be used
RhostsAuthentication no
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
IgnoreUserKnownHosts no
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
PermitEmptyPasswords no
# Change to no to disable s/key passwords
ChallengeResponseAuthentication yes
# Set this to 'yes' to enable PAM keyboard-interactive authentication
# Warning: enabling this may bypass the setting of 'PasswordAuthentication'
PAMAuthenticationViaKbdInt yes
X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes
PrintMotd yes
PrintLastLog yes
KeepAlive yes
UseLogin no
MaxStartups 10
# no default banner path
Banner /some/path
VerifyReverseMapping no
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server


danach habe ich ein paar key erstellt


ssh-keygen -t dsa -f /root/.ssh/key -b 1024


nun nahm ich die datei key.pub mit auf meinen windowsrechner und hab versucht mit putty eine verbindung herzustellen. der sshd fragt aber immernoch nach name $ passwort.

was mach ich falsch?

vielen dank

Tocotac
23.09.02, 15:18
na los, mädels & jungs, lasst mich nicht hängen...:)

Harry
23.09.02, 20:48
Hallo Tocotac,

wenn Du Dich von Deinem Windows-Rechner direkt über Key-Authentifizierung (also ohne Paßworteingabe) anmelden willst, dann benötigst Du auf dem Windows-Rechner nicht den Public-Hostkey des Servers.
Vielmehr mußt Du Dir auf dem Windows-Rechner ein eigenes Schlüsselpaar erzeugen (wie weiß ich leider nicht) und den dabei herausgepurzelten Public-Key der Datei ~/.ssh/authorized_keys auf dem Server hinzufügen.

Dann sollte es laufen.
btw: Schmeiß' das Protocol 1 auf dem Server raus. SSHv1 gilt seit geraumer Zeit als unsicher.

Nachtrag:
Habe gerade gesehen, dass Du den Parameter "AuthorizedKeysFile" neu definiert hast. In diesem Falle muß der Public-Key natürlich unter ~/.ssh/key hinzugefügt werden.

Harry

Tocotac
23.09.02, 22:37
warum muss ich die schlüssel auf einem windows-clienten erstellen? wenn ich die schlüssel auf den linux-server erstelle, passen sie doch genauso zusammen, als wenn ich sie auf einen windows-clienten erstelle.


Nachtrag:
Habe gerade gesehen, dass Du den Parameter "AuthorizedKeysFile" neu definiert hast. In diesem Falle muß der Public-Key natürlich unter ~/.ssh/key hinzugefügt werden.

der war schon so, wie sieht er denn normalerweise aus?

Harry
23.09.02, 23:44
Hallo,


Original geschrieben von Tocotac
warum muss ich die schlüssel auf einem windows-clienten erstellen? wenn ich die schlüssel auf den linux-server erstelle, passen sie doch genauso zusammen, als wenn ich sie auf einen windows-clienten erstelle.


der Grund ist die Authentifizierung zwischen Client und Server die über asymmetrische Verschlüsselung durchgeführt wird. Dazu benötigt jeder Kommunikationspartner ein Schlüsselpaar (öffentlicher und privater Schlüssel) wobei der öffentliche Schlüssel dem Partner ausgehändigt wird.
Kannst Dir ja mal irgendwann in Ruhe ein bisserl zu RSA reintun. Und: Ja, Du benötigst auf Windows-Seite auch ein Schlüsselpaar (ein separates) und dieser öffentliche Schlüssel gehört dann auf den Server.



der war schon so, wie sieht er denn normalerweise aus?
Standard ist ~/.ssh/authorized_keys.

Harry

Tocotac
24.09.02, 17:57
hab mit puttygen ein paar erstellt, den pu auf den server gespeichert, in /root/.ssh/key, putty den privatkey gegeben. aber, nachdem er nach einem loginnamen fragt, kommt Server refused our key. das heist doch, das der key abgeleht wurde. warum?

danke für deine hilfe...

Harry
24.09.02, 18:56
Hallo,

ich hab's gerade mal in der Doku zu PuTTY bzw. PuTTYgen nachgelesen. Es ist ein bisschen knifflig, den Schlüssel im korrekten Format auf den Server zu bekommen.
Du kannst es nachlesen unter http://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter8.html#8.2

In kurzen Stichpunkten:
- mit PuTTYgen ein Schlüsselpaar für SSHv2 generieren (empfohlen: RSA >= 1024bit)
- einen sinnvollen Kommentar (z.B. <User>@<Host>) angeben und evtl. auch eine Passphrase
- dann den Schlüssel aus dem oberen Textfeld von PuTTYgen (dort wo "Public key for pasting into authorized_keys file" steht) per cut/copy herauskopieren und in eine Datei (vorzugsweise direkt auf dem Server in ~/.ssh/keys) einfügen
- beim Einfügen darauf achten, dass der Schlüssel sich über eine einzige Zeile erstreckt und das Format "ssh-rsa AAA<weiterer Schlüsselteil> <Kommentar>" hat
- den privaten Schlüssel in einem sicheren Verzeichnis speichern
- PuTTY aufrufen und den privaten Schlüssel eintragen

Das sollte alles sein, damit es funktioniert.
Viel Spass :D

Harry

Tocotac
24.09.02, 19:35
funzt och nich...habs genau nach anleitung gemacht, aber jetzt kommt nicht mal mehr: Server refused our key

Harry
24.09.02, 19:36
Ich hab's auch gerade genau nach Anleitung gemacht und es hat genau wie geschrieben funktioniert :D

Harry

Tocotac
24.09.02, 19:46
kannste mal deine sshd_config posten?

Harry
24.09.02, 19:53
Hallo,

klar doch. Hier ist sie:

Protocol 2
ChallengeResponseAuthentication no
PasswordAuthentication no
Subsystem sftp /usr/lib/ssh/sftp-server
AllowUsers dummy

Das sind schon alle Zeilen, die ich in der sshd_config aktiviert habe; alles andere habe ich bei mir auskommentiert, weil es zum Teil eh Default-Werte waren.

btw: Der Default-Wert für "AuthorizedKeysFile" ist ".ssh/authorized_keys".

Harry

geronet
24.09.02, 19:55
@Harry: Ich kann doch auch das Schüsselpaar auf dem Rechner erzeugen auf dem der sshd läuft.. ist doch völlig egal nur ich muss den public key dort lassen (in mein ~/.ssh/authorized_keys werfen) und den privaten Schlüssel dann mitnehmen.

So hab ich es jedenfalls gemacht.

Wenn du die Schlüssel auf Windows erstellst gibt es doch nur Probleme mit Linefeed/CL+LF oder wie das hiess du weisst schon mit den Zeilenend-codes :D

Grüsse, Stefan

Harry
24.09.02, 20:17
Ja Stefan ... ich fahr' schon mal den Wagen vor :D

Recht hast Du. Eigentlich ist es wurscht, ob man das Schlüsselpaar auf dem Client generiert und dann den pubkey auf den Server wirft, oder das Paar auf dem Server generiert und den privkey mit auf den Client nimmt.
Beides geht und in beide Richtungen wirst Du das CR+LF-Problem haben ... mit cut-and-paste ist das jedoch auch gelöst oder mit dos2unix oder unix2dos oder ... :)

Harry

Tocotac
24.09.02, 20:46
so, hab mal meine sshd_config auch auf das wesentlcihste reduziert:
protokol 2
PerminRootLogin yes
ChallengeResponseAuthentication no
PasswordAuthentication no

-> /etc/rc3.d/S55sshd restart
-> ssh-keygen -b 768 -f /root/.ssh/authorized_keys
passphrase erstmal freigelassen
-> ssh localhost -i /root/.ssh/authorized_keys.pub
keine chance


p.s. warum kann ich eigentlich mit den konquer || netscape keine antworten ins forum stellen?

Tocotac
25.09.02, 20:02
sagt mal, ist redhat 'n bissel doff oder liegt das an mir und ich sollte mir doch lieber 'ne playstation kaufen :( ?