Hallo Bei allen Bemühungen ist es mir nicht gelungen in diversen man-pages, Büchern oder bei Suse fündig zu werden, wie man sich per ssh in einen anderen Rechner einloggt, ohne jedesmal das Passwort eingeben zu müssen. Ich glaube verstanden zu haben, dass man auf einer Maschine einen private und auf der anderen einen public key braucht. Die Keys habe ich auf der Maschine, auf die ich zugreifen möchte mittels ssh-keygen erzeugt. Danach rief ich ssh-add auf, doch hier erhielt ich die Fehlermeldung "Could not open a connection to your authentication agent" Soweit ich verstanden habe, muss ich dann den public-key auf die Maschine, die zugreifen soll kopieren, den private key auf der Maschine belassen, die künftig ohne Passwortabfrage bedient werden soll. Nur wohin? In welches Verzeichnis oder Datei? Dann steht etwas von einer Datei authorized_keys, die ich nirgendwo gefunden habe. Leider ist mein Englisch so wie es aussieht nicht gut genug, dieses Mysterium zu durchschauen. Kann mir jemand eine detailierte Anweisung zukommen lassen, damit es ein (manchmal entnervter, aber) zufriedener Linux-Newbie (der endlich ohne Bluescreens lebt) schafft, endlich ohne Passworthackerei einen anderen Rechner zu bedienen? Ich danke Euch Grüße aus dem Frankenland Andy Hassler
* On Mon, 04 Feb 2002 at 11:02 +0100, Andreas Hassler wrote:
Bei allen Bemühungen ist es mir nicht gelungen in diversen man-pages, Büchern oder bei Suse fündig zu werden, wie man sich per ssh in einen anderen Rechner einloggt, ohne jedesmal das Passwort eingeben zu müssen.
Ich glaube verstanden zu haben, dass man auf einer Maschine einen private und auf der anderen einen public key braucht.
Ja.
Die Keys habe ich auf der Maschine, auf die ich zugreifen möchte mittels ssh-keygen erzeugt.
Verkehrtrum - den key mußt Du auf der Maschine erzeugen, von der du weg willst.
Danach rief ich ssh-add auf, doch hier erhielt ich die Fehlermeldung "Could not open a connection to your authentication agent"
Zumindest mit ssh1 brauchst Du das nicht.
Soweit ich verstanden habe, muss ich dann den public-key auf die Maschine, die zugreifen soll kopieren, den private key auf der Maschine belassen, die künftig ohne Passwortabfrage bedient werden soll. Nur wohin? In welches Verzeichnis oder Datei?
Dann steht etwas von einer Datei authorized_keys, die ich nirgendwo gefunden habe.
Der public key muß auf der Maschine, auf die Du zugreifen willst in das File $HOME/.ssh/authorized_keys des Users als der Du Dich anmelden möchtest. Wenn es die Datei noch nicht gibt, mußt Du sie anlegen. Wenn es die Datei schon gibt, häng den Key an, nicht überschreiben.
Leider ist mein Englisch so wie es aussieht nicht gut genug, dieses Mysterium zu durchschauen.
Kann mir jemand eine detailierte Anweisung zukommen lassen, damit es ein (manchmal entnervter, aber) zufriedener Linux-Newbie (der endlich ohne Bluescreens lebt) schafft, endlich ohne Passworthackerei einen anderen Rechner zu bedienen?
Ich mache immer folgendes auf der Quell-Maschine: ssh-keygen cat ~/.ssh/identity.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys' ssh user@host Nun sollte es ohne Passwort funktionieren. Die Berechtigungen für authorized_keys solltest mittels folgendem Befehl auf 600 (User darf lesen und schreiben, andere dürfen gar nichts) setzen: chmod 600 ~/.ssh/authorized_keys -- Adalbert PGP welcome, request public key: mailto:adalbert+key@lopez.at
Adalbert Michelic wrote:
[..] Ich mache immer folgendes auf der Quell-Maschine: ssh-keygen cat ~/.ssh/identity.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys'
ssh user@host Nun sollte es ohne Passwort funktionieren. Die Berechtigungen für authorized_keys solltest mittels folgendem Befehl auf 600 (User darf lesen und schreiben, andere dürfen gar nichts) setzen: chmod 600 ~/.ssh/authorized_keys
Alloha! Neugierig wie ich bin, hab ich das auch grad mal ausprobiert. Allerdings werd' ich jetzt trotzdem nach Passwort gefragt, bzw. nach der Passphrase. Funktioniert es, wenn ich die leer lasse? Wie steht es um die Sicherheit bei leerer Passphrase? Hoping For An Answer ... :-) CU Werner -- MESSAGE ACKNOWLEDGED -- The Pershing II missiles have been launched.
* On Mon, 04 Feb 2002 at 12:27 +0100, Werner Jansen wrote:
Adalbert Michelic wrote:
[..] Ich mache immer folgendes auf der Quell-Maschine: ssh-keygen cat ~/.ssh/identity.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys'
ssh user@host Nun sollte es ohne Passwort funktionieren. Die Berechtigungen für authorized_keys solltest mittels folgendem Befehl auf 600 (User darf lesen und schreiben, andere dürfen gar nichts) setzen: chmod 600 ~/.ssh/authorized_keys
Alloha!
Neugierig wie ich bin, hab ich das auch grad mal ausprobiert. Allerdings werd' ich jetzt trotzdem nach Passwort gefragt, bzw. nach der Passphrase.
Wer fragt? ssh-keygen? Da kannst Du für den Schlüssel ein Passwort vergeben, das ist _nicht_ das Passwort Deines Users. Das Passwort benötigst Du dann auch, wenn Du den Schlüssel verwenden willst, d.h. z.B. beim Zugrifff auf einen anderen Rechner. Kannst Du leer lassen, dann fragt ssh beim Verbinden nicht nach.
Funktioniert es, wenn ich die leer lasse? Wie steht es um die Sicherheit bei leerer Passphrase?
Solange der private Schlüssel 100% privat ist, kein Problem. Wenn Du ein Passwort vergibst, dann muß jeder, der den Schlüssel verwenden will, auch das Passwort für den Schlüssel kennen, sonst kann er ihn nicht verwenden, insofern ist das ein wenig sicherer. Aber aufpassen, daß keiner den Schlüssel kriegt mußt Du sowieso. -- Adalbert PGP welcome, request public key: mailto:adalbert+key@lopez.at
Am Montag, 4. Februar 2002 11:49 schrieb Adalbert Michelic:
* On Mon, 04 Feb 2002 at 12:27 +0100, Werner Jansen wrote:
Adalbert Michelic wrote:
[..] Ich mache immer folgendes auf der Quell-Maschine: ssh-keygen cat ~/.ssh/identity.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys'
ssh user@host Nun sollte es ohne Passwort funktionieren. Die Berechtigungen für authorized_keys solltest mittels folgendem Befehl auf 600 (User darf lesen und schreiben, andere dürfen gar nichts) setzen: chmod 600 ~/.ssh/authorized_keys
Alloha!
Neugierig wie ich bin, hab ich das auch grad mal ausprobiert. Allerdings werd' ich jetzt trotzdem nach Passwort gefragt, bzw. nach der Passphrase.
Wer fragt? ssh-keygen? Da kannst Du für den Schlüssel ein Passwort vergeben, das ist _nicht_ das Passwort Deines Users. Das Passwort benötigst Du dann auch, wenn Du den Schlüssel verwenden willst, d.h. z.B. beim Zugrifff auf einen anderen Rechner.
Kannst Du leer lassen, dann fragt ssh beim Verbinden nicht nach.
Funktioniert es, wenn ich die leer lasse? Wie steht es um die Sicherheit bei leerer Passphrase?
Solange der private Schlüssel 100% privat ist, kein Problem. Wenn Du ein Passwort vergibst, dann muß jeder, der den Schlüssel verwenden will, auch das Passwort für den Schlüssel kennen, sonst kann er ihn nicht verwenden, insofern ist das ein wenig sicherer. Aber aufpassen, daß keiner den Schlüssel kriegt mußt Du sowieso.
Dafür gibt es doch den ssh-agent : Dem muss man einmal für die X-Session die Passphrase mitteilen und wird für die Dauer der Session nicht mehr danach gefragt. Das sollte imho sicherer sein, als ungeschützte Keys. Mathias Weigt
Am Mon, 04 Feb 2002 schrieb Andreas Hassler:
Bei allen Bemühungen ist es mir nicht gelungen in diversen man-pages, Büchern oder bei Suse fündig zu werden, wie man sich per ssh in einen anderen Rechner einloggt, ohne jedesmal das Passwort eingeben zu müssen. Sie eine Mail an: suse-linux-help@suse.com
Okay, Kurzanleitung: Die Maschine, auf der Du Dich einloggen möchtest, werde ich als $REMOTE, die von der Du Dich einloggen möchtest als $LOCAL bezeichnen. Entsprechend den Benutzer, als der Du Dich auf $REMOTE anmelden möchtest als $REMOTEUSER, den, der den Anmeldevorgang initiieren soll, als $LOCALUSER Auf $LOCAL für $LOCALUSER mit ssh-keygen einen Key generieren => in ~$LOCALUSER/.ssh gibt es eine Datei identity (privater Schlüssel) und identity.pub (öffentlicher Schlüssel) Kopiere den öffentlichen Schlüssel nach $REMOTE und hänge ihn auf diesem Rechner an die Datei ~$REMOTEUSER/.ssh/authorized_keys an. Jetzt kannst Du Dich von $LOCAL (als $LOCALUSER) mit ssh $REMOTE -l $REMOTEUSER auf $REMOTE anmelden, ohne ein Passwort eingeben zu müssen. Falls $REMOTEUSER == $LOCALUSER, reicht auch einfach ssh $REMOTE Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Christoph Maurer wrote:
Okay, Kurzanleitung:
Die Maschine, auf der Du Dich einloggen möchtest, werde ich als $REMOTE, die von der Du Dich einloggen möchtest als $LOCAL bezeichnen. Entsprechend den Benutzer, als der Du Dich auf $REMOTE anmelden möchtest als $REMOTEUSER, den, der den Anmeldevorgang initiieren soll, als $LOCALUSER
Auf $LOCAL für $LOCALUSER mit ssh-keygen einen Key generieren => in ~$LOCALUSER/.ssh gibt es eine Datei identity (privater Schlüssel) und identity.pub (öffentlicher Schlüssel)
Kopiere den öffentlichen Schlüssel nach $REMOTE und hänge ihn auf diesem Rechner an die Datei ~$REMOTEUSER/.ssh/authorized_keys an.
Funktioniert prima ohne Passphrase. Spricht was dagegen, den einmal generierten (private) Key über meine Rechner (wo es überall den Login $LOCALUSER gibt) zu verteilen oder sollte ich auf jedem Rechner nen eigenen Key generieren? CU Werner -- MESSAGE ACKNOWLEDGED -- The Pershing II missiles have been launched.
Am Mon, 04 Feb 2002 schrieb Werner Jansen:
Christoph Maurer wrote:
Okay, Kurzanleitung:
Die Maschine, auf der Du Dich einloggen möchtest, werde ich als $REMOTE, die von der Du Dich einloggen möchtest als $LOCAL bezeichnen. Entsprechend den Benutzer, als der Du Dich auf $REMOTE anmelden möchtest als $REMOTEUSER, den, der den Anmeldevorgang initiieren soll, als $LOCALUSER
Auf $LOCAL für $LOCALUSER mit ssh-keygen einen Key generieren => in ~$LOCALUSER/.ssh gibt es eine Datei identity (privater Schlüssel) und identity.pub (öffentlicher Schlüssel)
Kopiere den öffentlichen Schlüssel nach $REMOTE und hänge ihn auf diesem Rechner an die Datei ~$REMOTEUSER/.ssh/authorized_keys an.
Funktioniert prima ohne Passphrase. Spricht was dagegen, den einmal generierten (private) Key über meine Rechner (wo es überall den Login $LOCALUSER gibt) zu verteilen oder sollte ich auf jedem Rechner nen eigenen Key generieren?
Solange Du sicherstellen kannst, daß der private Schlüssel nur über sichere Kanäle verteilt wird, IMHO nicht. Du mußt nur bedenken, daß das ganze SSH-Konzept zusammenstürzt, wenn jemand Deinen privaten Schlüssel erhält. Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Am Montag, 4. Februar 2002 11:24 schrieben Sie:
Am Mon, 04 Feb 2002 schrieb Andreas Hassler:
Bei allen Bemühungen ist es mir nicht gelungen in diversen man-pages, Büchern oder bei Suse fündig zu werden, wie man sich per ssh in einen anderen Rechner einloggt, ohne jedesmal das Passwort eingeben zu müssen. Sie eine Mail an: suse-linux-help@suse.com
Okay, Kurzanleitung:
Die Maschine, auf der Du Dich einloggen möchtest, werde ich als $REMOTE, die von der Du Dich einloggen möchtest als $LOCAL bezeichnen. Entsprechend den Benutzer, als der Du Dich auf $REMOTE anmelden möchtest als $REMOTEUSER, den, der den Anmeldevorgang initiieren soll, als $LOCALUSER
Auf $LOCAL für $LOCALUSER mit ssh-keygen einen Key generieren => in ~$LOCALUSER/.ssh gibt es eine Datei identity (privater Schlüssel) und identity.pub (öffentlicher Schlüssel)
Kopiere den öffentlichen Schlüssel nach $REMOTE und hänge ihn auf diesem Rechner an die Datei ~$REMOTEUSER/.ssh/authorized_keys an.
Jetzt kannst Du Dich von $LOCAL (als $LOCALUSER) mit ssh $REMOTE -l $REMOTEUSER auf $REMOTE anmelden, ohne ein Passwort eingeben zu müssen. Falls $REMOTEUSER == $LOCALUSER, reicht auch einfach ssh $REMOTE
Hallo Vielen Dank für die detailierte Info. Klappt prima Andy Hassler
Hi On Monday 04 February 2002 11:24, Christoph Maurer wrote:
Am Mon, 04 Feb 2002 schrieb Andreas Hassler:
Ich hatte habe das gleiche problem wie Andreas Hassler.
Bei allen Bemühungen ist es mir nicht gelungen in diversen man-pages, Büchern oder bei Suse fündig zu werden, wie man sich per ssh in einen anderen Rechner einloggt, ohne jedesmal das Passwort eingeben zu müssen. Sie eine Mail an: suse-linux-help@suse.com Okay, Kurzanleitung:
Die Jungs von SuSE oder die von OPENssh könnten auch ruhig mal ein brauchbares HOWTO beilegen. Die manpages sind jedenfalls ein hartes Brot.
Auf $LOCAL für $LOCALUSER mit ssh-keygen einen Key generieren => in ~$LOCALUSER/.ssh gibt es eine Datei identity (privater Schlüssel) und identity.pub (öffentlicher Schlüssel)
Dazu hab ich allerdings mal eine Frage Ich habe in den leidigen man-pages zu ssh-keygen folgendes gelesen +++++++++++++++Anfang+++++++++++++++ -t type Specifies the type of the key to create. The possible values are ``rsa1'' for protocol version 1 and ``rsa'' or ``dsa'' for protocol version 2. The default is ``rsa1'' +++++++++++++++Ende+++++++++++++++++ Ich dachte eigentlich, dass moderne SSHs protokoll 2 benutzen. Ist das nun nur die Fallback-lösung, die der ssh-server aufgrund irgendwelcher defaults nimmt und müsste man eigentlich ssh-keygen -t dsa/rsa eingeben? Gruss Axel
Andreas Hassler (Andreas.Hassler@web.de) wrote:
Danach rief ich ssh-add auf, doch hier erhielt ich die Fehlermeldung "Could not open a connection to your authentication agent" Damit ssh-add funktioniert muß der ssh-agent laufen _und_ die dazu passenden Umgebungsvariablen gesetzt sein. Netterweise sagt ssh-agent einem gleich,was man setzen muß Z.B.: $ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-XXJ4wHPz/agent.602; export SSH_AUTH_SOCK; SSH_AGENT_PID=603; export SSH_AGENT_PID; sodaß man dies gleich mit eval ausführen kann. $ eval $(ssh-agent ) Agent pid 606 Danach funktioniert es auch mit dem Nach^W^Wssh-add.
-Falk
participants (7)
-
Adalbert Michelic
-
Andreas Hassler
-
Axel Heinrici
-
Christoph Maurer
-
Mathias Weigt
-
suse-linux@frodo.prima.de
-
Werner Jansen