PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ein paar Fragen zu ssh



pixel
20.11.02, 16:12
Hi@all,

nachdem ich schon einige Postings hier durchstöbert habe sind mir einige Sachen in Bezug auf ssh noch nicht ganz klar. Was ist der Unterschied zwischen rsa und dsa?

Ich logge mich bisher von meinem Linux-Client per ssh auf den Linux-Server ein. Dabei werde ich nach dem Passwort gefragt. Was muss ich tun damit das ohne Passwortabfrage funktioniert. Ich hatte das zuhause (ebenfalls Client und Server in Linux ;) ) mal anhand eines Artikels in der CT' gemacht was auch gut geklappt hat. Leider habe ich selbigen nicht mehr. Das einzige was ich noch weiss ist das es mit einem 'ssh-keygen ....' gemacht wird. Dabei bestimme ich ja auch wieder ob es rsa oder dsa ist (vorherige Frage).

Kann mir jemand nochmal die genaue Vorgenensweise erklären? Auf welchem Rechner ich welche Schlüssel erzeugen muss und wohin ich sie dann übertragen muss?

Vielen Dank im voraus.

Gruss Pixel

Harry
20.11.02, 19:27
Hallo pixel,

RSA ist ein asymmetrisches Verfahren, welches a) zur Ver(Ent-)schlüsselung von Nachrichten benutzt wird und b) gleichfalls zur Erzeugung digitaler Signaturen verwendet werden kann.
DSA ist ein reiner Algorithmus zur Nutzung digitaler Signaturen (Digital Signature Algorithm).

Die Authentifizierung zwischen SSH-Client und -Server (auch die des Users kann darüber durchgeführt werden) wird genau über solche digitalen Signaturen durchgeführt. Insofern ist es fast egal, für welche Variante von Keys Du Dich entscheidest. Beide sind aus heutiger Sicht hinreichend sicher bei entsprechender Schlüssellänge (>= 1028).

Möchtest Du nun erreichen, dass Du Dich vom Client C auf dem Server S anmelden kannst, ohne nach Deinem Paßwort gefragt zu werden, dann sind die folgenden Schritte notwendig:
1. Erzeugen eines DSA- oder RSA-Schlüsselpaares mittels "ssh-keygen -b [bits] -t [dsa|rsa]" auf dem Client C
2. Kopieren des öffentlichen Schlüsselteils vom Client C (~/.ssh/id_[rsa|dsa].pub) in die Datei $HOME/.ssh/authorized_keys auf dem Server S (falls diese Datei bereits existiert, solltest Du den Schlüssel anhängen, um andere Public-Keys nicht zu überschreiben) für den dort erreichbaren User
3. Vom Client C mittels "ssh <User_auf_Server>@<Server S>" einloggen und wohlfühlen

Harry

pixel
21.11.02, 12:36
Hi@all,

also mit meinem Linux-Client hat das prima geklappt. Jetzt ergibt sich jedoch für mich ein Problem wozu ich
etwas ausholen muss.

Für unsere Entwicklungs-Abteilung muss ich auf dem Linux-Server einen CVS zur Verfügung stellen. Unsere Entwicklicker arbeiten unter Windows mit WinCVS. Der Sourcecodeableich d.h. das ein- bzw. auschecken soll
via ssh abgewickelt werden. Ich habe mir im Web verschiedene Dokus zu diesem Thema zusammengesucht.
Wenn ich das richtig verstanden habe kann WinCVS alleine keinen ssh. Ich benötige dazu putty genauer gesagt puttygen (zum erzeugen des Schlüsselpaars) sowie pagend (der die Verbindung im Hintergrund hält).

Das erzeugen der Schlüssel auf den Windows-Rechner ist kein Problem. Nur aus Sicht der Sicherheit habe ich
bei den Windows-Rechner so meine Bedenken. Wie kann ich die Schlüssel dort gegen unbefugten Zugriff
hinreichend schützen? Schliesslich ist das ja wie ein Hausschlüssel zu unserem Server-Haus.

Weiterhin habe ich noch ein Problem. Der Server ist als PDC für die verschiedenen Windows-Rechner
eingerichtet. Ein Linux-Account auf dem Server ist zwar vorhanden jedoch ist das einloggen der User
mittels /bin/false deaktiviert. Das würde ich auch gerne sol lassen. Geht es dann überhaupt das WinCVS über
pagend eine Übertragung auf den Server etablieren kann? Oder muss ich das Einloggen der entsprechenden
User auf dem Server zulassen?

Gruss Pixel

RapidMax
23.11.02, 20:44
Soweit ich mit der Materie vertraut bin, ist auf dem Server ein CVS-Server. Dieser soll nun von den Entwickler mittels WinCVS angesprochen werden, ohne ihnen die Möglichkeit zu geben sich mittels ssh auf das System einzuloggen (shell).
ssh dient nur als sicherer Tunnel für das CVS, der mittels putty auf der Windows-Seite aufgebaut wird. Damit sich niemand einloggen kann, wurde die Bash auf /bin/true gesetzt. Richtig so?

Ein CVS-Server stellt seinen Dienst normal auf einem Port zur verfügung (Port 2401?). Der ssh-tunnel sollte so auch ohne Shell funktionieren.

Gruss, Andy

PS: Ich interessiere mich auch für CVS, gibts da eine Empfehlenswerte Doku, wie man einen Server einrichtet?

HangLoose
23.11.02, 21:15
moin moin


http://www.linux-magazin.de/Artikel/ausgabe/1999/01/CVS/cvs2.html
http://homepages.fh-giessen.de/~hg8464/linux/cvsref/index.shtml
http://www.mnd.fh-wiesbaden.de/~dreymann/linux/linux11.html
http://www.hostsharing.net/home/faqs/cvs-faq.htm

Gruß HangLoose

RapidMax
23.11.02, 22:57
Jaaaa, das reicht mal für den Einstieg, THX! :D

Gruss, Andy

debian-climber
29.11.02, 10:13
@harry

in der sshd.conf beim server sollte man aber noch überprüfen ob folgendes drin steht

************************************************** *******
PasswordAuthentication no
PermitEmptyPasswords no
PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
AllowUsers albert@192.168.1.13
************************************************** *******

Ich habe das gleiche Verfahren ebenfals in unserer Firma eingesetzt! sprich RSA

ssh-keygen -t rsa generiert den Key und speichert ihn /home/.ssh/id_rsa und ~/.ssh/id_rsa.pub ab!
der private key id_rsa bleibt im jeweiligen Homeverzeichnis des users (lokal) und der public key kommt in die authorized_keys an der Gegenstelle (server) ebenfals im Homeverzeichnis!

generiert man den key wird nach einem passwort gefragt, gibt man keines ein -> hat man eine ssh verbindung ohne passwort! (finde ich für ein internes netz soweit auch ok)

Jetzt hätte ich auch gleich noch eine Frage!

Wie gesagt das gleiche System habe ich auch! Hat das jemand schon mal unter einem Solaris Client gemacht?
bzw. kann man DSA und RSA mischen?
Habe hier eine Solaris Kiste die sich eben auch anmelden möchte! Ist allerdings eine veraltete ssh version drauf die kein RSA kann. DSA kann sie aber!
Läuft DSA genauso ab wie RSA? sprich mit dem generierten publich DSA key in die authorized_keys usw. !

Hat da jemand schon mal erfahrungen mit gesammelt??


Viele Grüsse

Matthias

Harry
29.11.02, 10:49
Hallo,


Original geschrieben von albert_aicas
in der sshd.conf beim server sollte man aber noch überprüfen ob folgendes drin steht

************************************************** *******
PasswordAuthentication no
PermitEmptyPasswords no
PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
AllowUsers albert@192.168.1.13
************************************************** *******

die Option "RSAAuthentication" gilt lediglich für die SSH-Protokollversion 1. Diese sollte schon aus Sicherheitsgründen nicht mehr verwendet werden, weswegen auch die Option "Protocol 2" gesetzt sein sollte, damit ausschließlich das neuere SSH-Protokoll Verwendung findet.
"RSAAuthentication no" sollte somit gesetzt werden. Für das Protokoll 2 gilt ansonsten die Option "PubkeyAuthentication yes", um mit Public-Key-Authentifizierung zu arbeiten.


Läuft DSA genauso ab wie RSA? sprich mit dem generierten publich DSA key in die authorized_keys usw. !

Ja :D

Harry

DustPuppy
29.11.02, 13:31
hallo bei mir startet sshd garnicht mit vollgender fehlermeldung !

Could not load host key: /etc/ssh/ssh_host_key
Disabling protocol version 1. Could not load host key
Disabling protocol version 2. Could not load host key
sshd: no hostkeys available -- exiting.

Harry
29.11.02, 15:01
Hallo,

die Kommandos

ssh-keygen -t dsa -b 1024 -f /etc/ssh/ssh_host_dsa_key -N ''
ssh-keygen -t rsa -b 1024 -f /etc/ssh/ssh_host_rsa_key -N ''

sollten Abhilfe schaffen.

Harry

DustPuppy
29.11.02, 16:23
irgendwie macht ssh streß :-(

also, ich weiss eigendlich nicht was der hostkey ist ! ist das der teil von keygen mit der endung .pub ???
in der config (nach dem was ihr hier geschrieben habt), wird das file mit der endung .pub in der sshd_config mit

AuthorizedKeysFile /root/.ssh/authorized_keys

angegeben aber in der config ist auch ein teil (bei mir ausdokumentiert) der hostkey heisst:

# 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

ich werde daraus nicht wirklich schlau, muss aber auch zugeben das ich mich noch nicht wirklich dammit beschäftigt habe.

RapidMax
29.11.02, 19:18
also, ich weiss eigendlich nicht was der hostkey ist ! ist das der teil von keygen mit der endung .pub ???
in der config (nach dem was ihr hier geschrieben habt), wird das file mit der endung .pub in der sshd_config mit
die Endung .pub deutet auf public hin, also den öffentlichen Schlüssel.

Gruss, Andy

DustPuppy
29.11.02, 20:42
und woher bekomm ich den hostkey ???

RapidMax
29.11.02, 21:51
Mit ssh-keygen.

Wenn es ihn schon gibt must du ihn nur kopieren. Falls es nicht deine Kiste ist, verlange ihn beim Admin.

Gruss, Andy

DustPuppy
29.11.02, 22:05
hat sich erledigt ich habe -N " stat -N ' ' gemacht