PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ssh; Hostkey; Publickey



Linuxexplorer
08.10.03, 13:06
Hi!

Ich versuche gerade, ssh mit der PublicKeyAuthentication zum lauffen zu bringen, aber irgendwie blicke ich da nicht ganz durch...

Auf beiden Rechnern habe ich einen Hostkey generiert, nur wohin muss ich ihn auf dem anderen Rechnern kopieren? Muss ich das mit beiden Hostkey machen?

Die PublicKey des Users muss ich in /home/users/ssh/authorized_keys2 kopieren, oder einfach anfügen. Stimmt das so?

Hier meine sshd_config::
Stimmt da alles soweit?
Wie ist das mit RSAAuthentication, stimmt das?

# This is ssh server systemwide configuration file.
Port 22
Protocol 2
ListenAddress 0.0.0.0
#ListenAddress ::
HostKey /etc/ssh/ssh_host_key
ServerKeyBits 768
LoginGraceTime 600
KeyRegenerationInterval 3600
PermitRootLogin no

# Don't read ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
StrictModes yes
X11Forwarding no

PrintMotd yes
KeepAlive yes

# Logging
SyslogFacility AUTH
LogLevel INFO
#obsoletes QuietMode and FascistLogging

RhostsAuthentication no
#
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
RhostsRSAAuthentication no
#
RSAAuthentication yes

PasswordAuthentication no
PermitEmptyPasswords no
CheckMail no


Vielen Dank für eure Hilfe!!

MFG: Linuxexplorer

Linuxexplorer
08.10.03, 13:55
also ich habe jetzt die Hostkeys in /etc/ssh/ssh_known_hosts und den Publickey des Users unter /etc/ssh/authorized_keys eingetragen.

Spielen die ssh-Versionen eine Rolle? Denn ich bekomme so ne komische Fehlermeldung:
no hostkey alg

Der eine Hostkey sieht so aus:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwbLZIIe41o4zMMtuob/Uf5AOQ3vQSX2Y1ttg25RBWO5v6bweSJU0IopcyEX6sKkCrmQaq TEUMHAQUUi8Xz48knu3SGwrfyCiU5vK/7KnUAdBPlik+lCOKwIMrNwpzHu4lfY7NSyjKY/ArTDikbWfT5haUWsqjMlZ0PhSmOyY9QM= root@linux

Der andere:
1024 35 16356057768941504141508859341870013277164573642996 58316115385140290680049549847490949191579562763222 34007409797180081144558335471710130817867060300002 48213327044427458049808802146970091666572134433958 05201885543558270801621423189168895560620707945237 97221098199481893049917421055578781508555790777602 940620179 root@linux2

Was stimmt da nicht?

PS: Die ssh-Versionen:

PC1: OpenSSH_3.4p1 Debian, SHH protocols 1.5/2.0, OpenSSL 0x0090603f
PC2: OpenSSH_2.3.0p1, protocol versions 1.5/2.0, Compiled with SSL (0x0090600f).

MFG: Linuxexplorer

cotelli
08.10.03, 14:03
@ Linuxexplorer

lies dir das mal durch:
http://www2.uibk.ac.at/zid/software/unix/linux/ssh-publickey.html
und achte drauf das die verzeichnisse /home/user/.ssh einen punkt vor ssh vorangestellt haben. (versteckte verzeichnisse)

gruß cotelli

edit: ~/.ssh ,das verzeichnis wird aber gleich durch den befehl
"ssh-keygen -t dsa" angelegt. musst du dann noch auf deinem server erstellen.

mfhg
08.10.03, 16:32
mal ne andere frage die vom thema abweicht, wie hast du die version herrausgefunden von openssh?

cotelli
08.10.03, 16:37
Original geschrieben von mfhg
mal ne andere frage die vom thema abweicht, wie hast du die version herrausgefunden von openssh?

ssh -V

gruß cotelli

mfhg
08.10.03, 16:50
danke ^^

Linuxexplorer
09.10.03, 14:47
Ich glaube, ich habe den gröbsten Fehler gefunden:

1. Ich habe die neuen Versionen von ssh und ssl installiert
2. PubkeyAuthentication ist nicht das gleiche wie RSAAuthentication, d.h verschiedene Schlüssel

Jetzt habe ich mit ssh-keygen -t dsa ein Schlüsselpar erstellt.
Den öffentlichen Teil (id_dsa.pub ) habe ich auf dem Server unter /home/user/.ssh/authorized_keys2
gespeichert.

Es funktioniert aber immer noch nicht!.

Hier die Ausgabe von "ssh IP -v"

ssh 192.168.20.1 -v
OpenSSH_3.4p1, SSH protocols 1.5/2.0, OpenSSL 0x0090703f
debug1: Reading configuration data /usr/local/etc/ssh_config
debug1: Rhosts Authentication disabled, originating port will not be trusted.
debug1: ssh_connect: needpriv 0
debug1: Connecting to 192.168.20.1 [192.168.20.1] port 22.
debug1: Connection established.
debug1: identity file /home/besa/.ssh/identity type -1
debug1: identity file /home/besa/.ssh/id_rsa type -1
debug1: identity file /home/besa/.ssh/id_dsa type 2
debug1: Remote protocol version 2.0, remote software version OpenSSH_3.4p1 Debia
n 1:3.4p1-1
debug1: match: OpenSSH_3.4p1 Debian 1:3.4p1-1 pat OpenSSH*
Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_3.4p1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: dh_gen_key: priv key bits set: 113/256
debug1: bits set: 1587/3191
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '192.168.20.1' is known and matches the RSA host key.
debug1: Found key in /home/besa/.ssh/known_hosts:1
debug1: bits set: 1576/3191
debug1: ssh_rsa_verify: signature correct
debug1: kex_derive_keys
debug1: newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: waiting for SSH2_MSG_NEWKEYS
debug1: newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: done: ssh_kex2.
debug1: send SSH2_MSG_SERVICE_REQUEST
debug1: service_accept: ssh-userauth
debug1: got SSH2_MSG_SERVICE_ACCEPT
debug1: authentications that can continue: publickey,keyboard-interactive
debug1: next auth method to try is publickey
debug1: try privkey: /home/besa/.ssh/identity
debug1: try privkey: /home/besa/.ssh/id_rsa
debug1: try pubkey: /home/besa/.ssh/id_dsa
debug1: authentications that can continue: publickey,keyboard-interactive
debug1: next auth method to try is keyboard-interactive
debug1: authentications that can continue: publickey,keyboard-interactive
debug1: no more auth methods to try
Permission denied (publickey,keyboard-interactive).
debug1: Calling cleanup 0x80642a0(0x0)
besa@linuxdesk:~/.ssh >

Hier meine sshd_config:

# This is ssh server systemwide configuration file.
Port 22
Protocol 2
ListenAddress 0.0.0.0
#ListenAddress ::
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
AuthorizedKeysFile %h/.ssh/authorized_keys2
ServerKeyBits 768
LoginGraceTime 600
KeyRegenerationInterval 3600
PermitRootLogin no
IgnoreRhosts yes
StrictModes yes
X11Forwarding no
X11DisplayOffset 10
PrintMotd yes
KeepAlive yes

# Logging
SyslogFacility AUTH
LogLevel INFO
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication no
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no


Vielen Dank für eure Hilfe

MFG: Linuxexplorer

Linuxexplorer
09.10.03, 20:04
kann mir niemand helfen? Es ist dringend.....:rolleyes:

MFG: Linuxexplorer

cotelli
09.10.03, 20:51
@ Linuxexplorer

1.) schlüsselpaar erstellen mit ssh-keygen -t dsa > hast du,
dann hast du im verzeichnis /home/user/.ssh die dateien:
id_dsa
id_dsa.pub >> publicschlüssel,
den kopierst du jetzt auf deinen server in dein /home/user/.ssh (habe ich über floppy gemacht)
jetzt erstellt du auf dem server noch die datei /home/user/.ssh/authorized_keys (wird aber über den befehl cat gleich angelegt) und kopierst den inhalt von id_dsa.pub in authorized_keys mittels:
"cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys" dazu musst du dann aber auf dem server eingeloggt sein.
2.)solltest du z.b. 2 distri's am laufen haben (ich habe gentoo und suse 8.2) kannst du für jede disrti ein schlüsselpaar anlegen, der inhalt des 2 . publicschlüssels( id_dsa.pub )
kommt dann wieder in die /home/user/.ssh/authorized_keys wieder wie oben beschrieben:
"cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys" (2. schlüssel)
somit hast du jetzt jeweils den inhalt von publicschlüssel 1 und 2 in authorized_keys
und dann kannst du dich von jeder distri als benutzer auf dem server anmelden.
solltest du nur eine distri haben erledigt sich punkt 2 für dich.
viel glück

gruß cotelli

p.s. ich hoffe, das du damit was anfangen kannst :)

edit: völlig richtig dark sorcerer, es muss nartürlich heissen,

"cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys" (habs jetzt oben auch geändert)

cotelli
09.10.03, 20:57
Original geschrieben von Linuxexplorer
Ich glaube, ich habe den gröbsten Fehler gefunden:
1. Ich habe die neuen Versionen von ssh und ssl installiert
2. PubkeyAuthentication ist nicht das gleiche wie RSAAuthentication, d.h verschiedene Schlüssel
Jetzt habe ich mit ssh-keygen -t dsa ein Schlüsselpar erstellt.
Den öffentlichen Teil (id_dsa.pub ) habe ich auf dem Server unter /home/user/.ssh/authorized_keys2
gespeichert.


ich glaube der fehler liegt hier "authorized_keys2" die 2 ist zuviel authorized_keys sollte passen,
per befehl ssh-keygen -t dsa solltest du openn.ssh laufen haben.

gruß cotelli

DarkSorcerer
10.10.03, 08:52
Die authorized_keys liegt unter ~/.ssh, also so:

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

Linuxexplorer
10.10.03, 11:00
ok, habe den Fehler gefunden. Es lag an "StrictModes yes" in der sshd_config.


Laut man ssh :

StrictModes
Specifies whether sshd should check file modes and ownership of
the user's files and home directory before accepting login. This
is normally desirable because novices sometimes accidentally
leave their directory or files world-writable. The default is
``yes''.

Die Datei auf dem Server in /home/user/.ssh/authorized_keys muss folgende Zugriffsrechte haben: 0600, oder man setzt StrictModes no in der sshd_config.

MFG: Linuxexplorer