[Erledigt] SSH Problem mit Public Keys

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
tresi
Beiträge: 14
Registriert: 11.04.2009 12:21:20

[Erledigt] SSH Problem mit Public Keys

Beitrag von tresi » 11.04.2009 13:05:48

Hallo,

seit einigen Tagen beschäftige ich mich jetzt mit Debian Lenny (ohne Desktop-Aufsatz). Vorher hatte ich nie was mit Linux zu tun, aber irgendwann wollte ich mich sowieso mal heranwagen. Bis jetzt habe ich es nicht bereut - im Gegenteil :)

Das unerschöpfliche Internet hat mir bis jetzt alle meine Fragen beantworten können, nur jetzt weiß ich leider nicht mehr weiter und habe mittlerweile auch keine Lust mehr zu suchen (seit Karfreitag Morgen fast ununterbrochen am Suchen), da ich mir zu 99,73% sicher bin, dass ich alles richtig gemacht habe (100% nicht, ich lasse mich gerne belehren, darum habe ich mich ja auch registriert ;) ). Ich möchte mir Zuhause einen Debian-Server einrichten. Um Debian erstmal kennen zu lernen habe ich unter Win mit Virtualbox herumgespielt und meine Vorgehensweise exakt dokumentiert. Es hat zwar oft lang gedauert, aber ich bin immer zu einem Ergbenis gekommen.

Zu meinem Problem:

Ich habe einen SSH-Server installiert und möchte mich per Private/Public-Key kennwortlos authentifizieren. In meiner VM funktionierte das (mehrmals gemacht) super einfach:

Unter Windows mit PuttyGen einen SSH2-RSA 2048 Bit Key erstellt, Kommentar und Passphrase eingegeben und den Private Key lokal gespeichert. Normal mit putty als Benutzer am Server angemeldet und im /home/username-Verzeichnis einen Ordner .ssh erstellt. Per nano in den Ordner die Datei authorized_keys erstellt und den Public Key aus dem oberen Fensterteil von PuttyGen hineinkopiert (natürlich alles in eine Zeile gerückt) und gespeichert. Die Rechte mit chmod 700 /home/username/.ssh und chmod 600 /home/username/.ssh/authorized_keys angepasst.Die /etc/ssh/sshd_conf habe ich erstmal so gelassen (PubkeyAuthentication yes ist ja standardmässig gesetzt). Wenn ich mich jetzt per putty (SSH Protocol 2 only, Private Key für Auth) anmelde, wird auch schön nach login und der Key-Passphrase gefragt und dann werde ich akzeptiert (kein "Server refused key" o. ä.) . Ich habe nur das Problem, dass der Schlüssel bei JEDEM einloggen wieder abgefragt wird und ich bekomme das nicht abgestellt.Das deutet für mich ja auf falsche Dateiberechtigungen hin

Die Rechte der Ordner und Dateien sind definiv richtig:
drwx------ 4 username username .ssh
-rw-------- 4 username username authorized_keys

Vorsichtshalber habe ich /home/username auch noch auf 700 gestellt (natürlich auch ohne probiert). Der Server wurde schon öfter rebootet und auch ssh per etc/init.d/ssh restart neu gestartet.

etc/init.d/ssh start -d gibt mir bei der Anmeldung folgendes aus:

Code: Alles auswählen

powerslave:~# /etc/init.d/ssh start -d
Starting OpenBSD Secure Shell server: sshddebug1: sshd version OpenSSH_5.1p1 Debian-5
debug1: read PEM private key done: type RSA
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: Checking blacklist file /usr/share/ssh/blacklist.DSA-1024
debug1: Checking blacklist file /etc/ssh/blacklist.DSA-1024
debug1: private host key: #1 type 2 DSA
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-d'
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
debug1: Bind to port 22 on 0.0.0.0.
Server listening on 0.0.0.0 port 22.
debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 5 out 5 newsock 5 pipe -1 sock 8
debug1: inetd sockets after dupping: 3, 3
Connection from 192.168.0.10 port 4933
debug1: Client protocol version 2.0; client software version PuTTY_Release_0.60
debug1: no match: PuTTY_Release_0.60
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-5
debug1: permanently_set_uid: 101/65534
debug1: list_hostkey_types: ssh-rsa,ssh-dss
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: client->server aes256-ctr hmac-sha1 none
debug1: kex: server->client aes256-ctr hmac-sha1 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST_OLD received
debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_INIT
debug1: SSH2_MSG_KEX_DH_GEX_REPLY sent
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done
debug1: [b]userauth-request for user bjoern service ssh-connection method [u]none[/u][/b]
debug1: attempt 0 failures 0
debug1: PAM: initializing for "bjoern"
debug1: PAM: setting PAM_RHOST to "darkpower"
debug1: PAM: setting PAM_TTY to "ssh"
Failed none for bjoern from 192.168.0.10 port 4933 ssh2
debug1: userauth-request for user bjoern service ssh-connection method publickey
debug1: attempt 1 failures 0
debug1: test whether pkalg/pkblob are acceptable
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: temporarily_use_uid: 1000/1000 (e=0/0)
debug1: trying public key file /home/bjoern/.ssh/authorized_keys
debug1: fd 4 clearing O_NONBLOCK
debug1: matching key found: file /home/bjoern/.ssh/authorized_keys, line 1
Found matching RSA key: 9c:05:e1:21:9d:7f:f6:7e:0b:ea:e4:0d:d0:fd:04:73
debug1: restore_uid: 0/0
Postponed publickey for bjoern from 192.168.0.10 port 4933 ssh2
debug1: userauth-request for user bjoern service ssh-connection method publickey
debug1: [b]attempt 2[/b] failures 0
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: temporarily_use_uid: 1000/1000 (e=0/0)
debug1: trying public key file /home/bjoern/.ssh/authorized_keys
debug1: fd 4 clearing O_NONBLOCK
debug1: matching key found: file /home/bjoern/.ssh/authorized_keys, line 1
Found matching RSA key: 9c:05:e1:21:9d:7f:f6:7e:0b:ea:e4:0d:d0:fd:04:73
debug1: restore_uid: 0/0
debug1: ssh_rsa_verify: signature correct
debug1: do_pam_account: called
Accepted publickey for bjoern from 192.168.0.10 port 4933 ssh2
debug1: monitor_child_preauth: bjoern has been authenticated by privileged process
debug1: PAM: establishing credentials
debug1: SELinux support disabled
debug1: PAM: establishing credentials
debug1: permanently_set_uid: 1000/1000
debug1: Entering interactive session for SSH2.
debug1: server_init_dispatch_20
debug1: server_input_channel_open: ctype session rchan 256 win 16384 max 16384
debug1: input_session_request
debug1: channel 0: new [server-session]
debug1: session_new: session 0
debug1: session_open: channel 0
debug1: session_open: session 0: link with channel 0
debug1: server_input_channel_open: confirm session
User child is on pid 2629
debug1: server_input_channel_req: channel 0 request pty-req reply 1
debug1: session_by_channel: session 0 channel 0
debug1: session_input_channel_req: session 0 req pty-req
debug1: Allocating pty.
debug1: session_new: session 0
debug1: SELinux support disabled
debug1: session_pty_req: session 0 alloc /dev/pts/1
debug1: server_input_channel_req: channel 0 request shell reply 1
debug1: session_by_channel: session 0 channel 0
debug1: session_input_channel_req: session 0 req shell
debug1: Setting controlling tty using TIOCSCTTY.
[EDIT]
Sehe gerade, dass im Code-Tag kein Fett erlaubt ist, ich hoffe Ihr seht trotzdem die markierten Zeilen.
[/EDIT]

Die erste fette Zeile verstehe ich nicht ganz. Kommt das daher, da ich andere Auth-Methoden in der ssh_conf nicht abgestellt habe?

Attempt 2 aus dem zweiten fett markierten kommt daher, da ich mich beim der Passphrase vertippt habe.

Selbstverständlich habe ich auch schon ssh-keygen probiert und den private key dann über eine gemountete Freigabe auf meinen Windows Client geschoben habe.

Wie ihr seht, weiß ich echt nicht mehr weiter, ich hoffe, dass Ihr mir irgendwie weiterhelfen könnt. Eigentlich wollte ich den Server dieses Wochenende komplett installiert haben (Mail, VPN über SSH, PDC usw.) und jetzt hänge ich an so einer bescheidenen Stelle fest und das obwohl ich vorher alles in einer VM getestet habe.

Vielleicht noch eine Anmerkung: Ich habe von der Businsess-CD installiert und selbst das Standard-System abgewählt, da ich wirklich nur das installieren will, was ich benötige und mir nicht alles zumüllen lassen möchte. Keine Ahnung, ob es damit was zu tun hat, denn das habe ich in der VM nicht gemacht.

Im Moment fällt mir erstmal nicht mehr ein. Falls ihr mehr Input benötigt, gebt Bescheid ;)

Vielen Dank für jegliche Unterstützung im voraus!

MfG,
Bjoern
Zuletzt geändert von tresi am 11.04.2009 17:50:19, insgesamt 1-mal geändert.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: SSH Problem mit Public Keys

Beitrag von Duff » 11.04.2009 14:38:09

Vielleicht kannst du mal deine sshd_config-Datei vom Server posten.

Bin mir nicht sicher ob es vielleicht nur ein Tipfehler von dir ist, aber die authorized_keys muss ins Verzeichnis ~/.ssh.
Oh, yeah!

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: SSH Problem mit Public Keys

Beitrag von Danielx » 11.04.2009 14:54:40

Hallo und willkommen im df.de!
tresi hat geschrieben:Ich habe nur das Problem, dass der Schlüssel bei JEDEM einloggen wieder abgefragt wird und ich bekomme das nicht abgestellt.
Was meinst du damit genau?
tresi hat geschrieben:Die erste fette Zeile verstehe ich nicht ganz. Kommt das daher, da ich andere Auth-Methoden in der ssh_conf nicht abgestellt habe?
Einige Zeilen später steht ja dann doch:
tresi hat geschrieben:debug1: userauth-request for user bjoern service ssh-connection method publickey
Gruß,
Daniel

tresi
Beiträge: 14
Registriert: 11.04.2009 12:21:20

Re: SSH Problem mit Public Keys

Beitrag von tresi » 11.04.2009 15:05:09

Hey,

vielen Dank für die Meldungen - endlich stehe ich nicht mehr ganz allein da :)

@Danielx: Auf meinem Testsystem war es so, dass ich mich beim ersten Einloggen mit Private Key die Passphrase einmal eingeben musste und ab dann brauchte ich nichts mehr eingeben (mit Autologon: username in putty). So soll es doch auch sein?


@Duff: Was meinst du mit authorized_keys in .ssh? Klar , die Datei liegt auch in ~/.ssh. Kommst du darauf, da ich sie bei den Rechten direkt untereinander geschrieben habe? Das sollte ich nur zur Verdeutlichung der Rechte sein ;)

Hier wie gewünscht die sshd_config:

Code: Alles auswählen

# Package generated configuration file
# See the sshd(8) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

# 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_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes

#AllowUsers bjoern
Es handelt isch wie gesagt um die Standard Konfigurationsdatei an der ich nur ein, zwei Sachen ummer ausprobiert habe.

Das AllowUsers hatte ich zum Testen mal drin und mal nicht, macht aber keiben Unterschied.
Ebenso habe ich AuthorizedKeysFile zwischendruch mal auskommentiert.

diggerchen
Beiträge: 115
Registriert: 15.01.2005 22:35:26

Re: SSH Problem mit Public Keys

Beitrag von diggerchen » 11.04.2009 17:10:17

tresi hat geschrieben:@Danielx: Auf meinem Testsystem war es so, dass ich mich beim ersten Einloggen mit Private Key die Passphrase einmal eingeben musste und ab dann brauchte ich nichts mehr eingeben (mit Autologon: username in putty). So soll es doch auch sein?
Jedes Mal wenn Du mit putty eine Verbindung zu Deinem Server aufbaust, wird von putty die passphrase für den private key abgefragt. Das ist normal wenn Dein key mit einer solchen geschützt ist. Die Option "Autologin username" soll nur das Eingeben des Benutzernamens erübrigen, nicht aber das der passphrase. Möchtest Du Dir das auch vereinfachen, so bietet sich puttys "pageant" an.

tresi
Beiträge: 14
Registriert: 11.04.2009 12:21:20

Re: SSH Problem mit Public Keys

Beitrag von tresi » 11.04.2009 17:49:56

@diggerchen: Ich habe gerade noch einmal in meiner virtuellen Maschine nachgesehen und musste feststellen, dass ich meinen generierten Key wohl VOR der Eingabe der Passpahrase gespeichert haben muss *schäm*. Ich dachte, dass die Passphrase auch serverseitig gespeichert wird und einfach nur noch zusätzliche Sicherheit bringen soll. Mit der dahinterligenden Technik habe ich mich nicht sonderlich auseinandergesetzt. Jetzt wird mir einiges klar ;)

Ich habe in den letzten Tagen auch zu lange am Rechner gesessen und kaum geschlafen. Kein Wunder, dass man irgendwann den Wald vor lauter Bäumen nicht mehr sieht. Ich war aber auch echt schon am verzweifeln...

Pageant werde ich mir dann mal ansehen.

Vielen Dank an alle Beteiligten. Echt super Forum hier :)

Ich hoffe, ich darf Euch weiterhin mit dummen Fragen (ach, nee gibt's ja nicht, nur dumme Antworten) belästigen. Ich verspreche auch, dass ich auch weiterhin vorher RTFM mache und Onkel Google konsultiere ;)

MfG,
Björn

diggerchen
Beiträge: 115
Registriert: 15.01.2005 22:35:26

Re: [Erledigt] SSH Problem mit Public Keys

Beitrag von diggerchen » 11.04.2009 17:57:05

Ab und zu etwas Abstand bewirkt Wunder :) Pageant wird Dir den gewünschten Komfort bringen.

tresi
Beiträge: 14
Registriert: 11.04.2009 12:21:20

Re: [Erledigt] SSH Problem mit Public Keys

Beitrag von tresi » 11.04.2009 19:19:30

Da hast du wohl recht ;)

Danke für den Tipp mit Pageant, genau richtig.

In Verbindung mit Kommandozeile und KeePass, brauche ich meine Pageant-Verknüpfung nur noch anklicken und STRG+A klicken, so dass mein ultrasicheres Passwort eingetragen und Putty automatisch gestartet wird. Das ist doch was :)

Schöne Ostern noch,

wünscht ein leicht abgekämpfter aber zufriedener
Björn

Antworten