Hallo,
ich will auf unserem Webserver aller x zeit eine Textdatei ablegen via scp und cron vom internen lan aus. Auf dem Webserver habe ich ein login 'webuser' welches es intern nicht gibt. wie muss ich die ssh-keys wo hinterlegen, das ein automatisches scp ohne passwortabfrage aus root lokal nach webuser remote funktioniert. Mit dem selben Usernamen, das habe ich geschnallt.
Ich kann remote keinen neuen User anlegen und will es lokal nicht unbedingt.
Hi Jens,
On Tue, Jul 10, 2001 at 09:19:21 +0200, Jens Puruckherr wrote:
ich will auf unserem Webserver aller x zeit eine Textdatei ablegen via scp und cron vom internen lan aus. Auf dem Webserver habe ich ein login 'webuser' welches es intern nicht gibt. wie muss ich die ssh-keys wo hinterlegen, das ein automatisches scp ohne passwortabfrage aus root lokal nach webuser remote funktioniert.
Als root lokal bei Dir aufrufen:
ssh-keygen -N '' (leere Passphrase fuer den Schluessel)
(dieser Key wird unter /root/.ssh/identity gespeichert)
Die Datei /root/.ssh/identity.pub auf den remote Account als ~/.ssh/authorized_keys kopieren. Danach sollte fuer root ein passwortloses Login auf dem remote Account moeglich sein:
ssh remoteusername@remotehostname
und fuer scp sollte das Gleiche gelten:
scp remoteusername@remotehostname:/dir/file .
bye, Chris
Am Dienstag, 10. Juli 2001 10:54 schrieb Christian Perle:
Als root lokal bei Dir aufrufen:
ssh-keygen -N '' (leere Passphrase fuer den Schluessel)
(dieser Key wird unter /root/.ssh/identity gespeichert)
Die Datei /root/.ssh/identity.pub auf den remote Account als ~/.ssh/authorized_keys kopieren. Danach sollte fuer root ein passwortloses Login auf dem remote Account moeglich sein:
ssh remoteusername@remotehostname
und fuer scp sollte das Gleiche gelten:
scp remoteusername@remotehostname:/dir/file .
Oh, da war ich aber nahe dran :-) Nur so zum Verständnis: Sobald mein gegenüber-host in seiner authorized_keys den PublicKey des Einwählers findet, ist es egal, ob Account mit dem Usernamen übereinstimmt?
Also der pub_key vom root.local wird als gültiger key vom einloggenden user.remote angesehen, weil er ja da ist?!
*Gedanken sortier*.....
Danke!
Mit freundlichen Grüßen
Jens Puruckherr
On Tue, Jul 10, 2001 at 11:22:05AM +0200, Jens Puruckherr wrote:
Nur so zum Verständnis: Sobald mein gegenüber-host in seiner authorized_keys den PublicKey des Einwählers findet, ist es egal, ob Account mit dem Usernamen übereinstimmt?
Ja.
Also der pub_key vom root.local wird als gültiger key vom einloggenden user.remote angesehen, weil er ja da ist?!
nein. ein public key ist public - sprich potentiell kennt jeder Mensch der Welt diesen key. Des Wissen um den zugehörigen private(!) key ist das fürs Login entscheidende Kriterium.
*Gedanken sortier*.....
interpretier das mal so: Auf dem Zielaccount liegt in der ~/.ssh/authorized_keys ein Öffentlicher Schlüssel. Zugangsberechtigt zu diesem Account sind alle, die den zu diesem öffentlichen Schlüssel passenden privaten Schlüssel haben. Den sollte bei dir nur root@local haben (in ~/.ssh/identity). Welchen Namen derjenige, der den richtigen privaten schlüssen kennt, hat, ist völlig schnuppe.
(Also ganz wie in der Realität: Man muß den passenden Schlüssel zur Tür haben. Habe ich diese Schlüssel kann ich sowohl als Müller oder auch als Meier rein --> Name ist also egal)
Wie ich in einer anderem Mail gerade schrieb sollte man deshalb eigentlich diesen privaten schlüssel schützen (per passphrase) womit sich diese Authentisierungsmethode oft nicht für per cron angeschobene remote Logins eignet. Einfach weil kein Mensch da ist, der die Passphrase eintippen kann. Nur wenn du sicher bist, dass niemand jemals deine lokale ~root/.ssh/identity bekommen kann, brauchst du auch keine passphrase :)
Reinhard
On Tue, Jul 10, 2001 at 10:54:27AM +0200, Christian Perle wrote:
Als root lokal bei Dir aufrufen:
ssh-keygen -N '' (leere Passphrase fuer den Schluessel)
(dieser Key wird unter /root/.ssh/identity gespeichert)
Die Datei /root/.ssh/identity.pub auf den remote Account als ~/.ssh/authorized_keys kopieren. Danach sollte fuer root ein passwortloses Login auf dem remote Account moeglich sein:
nur wenn man seinen private key nicht mit einer Passphrase gesichert hat.
Da das ganze über cron laufen soll und keys ohne Passphrase nicht so toll sind könnte man auch mit rhost-based-RSA-Authentication arbeiten. Das geht wie rlogin/rcp nur dass neben den DNS-Namen noch die Hostkeys der Rechner getestet werden.
Bei user1@rechner1 (lokal, da wo der cron läuft) user2@rechner2 (remote) einfach in user2@rechner2:~/.shosts sie Zeile user1@rechner1 reinschreiben und den public hostkey von rechner1 in user2@rechner2:~/.ssh/known_hosts schaufeln.
kopieren per "scp file user2@rechner2:pfad/"
Je nach Fall ist mal die eine und mal die andere Methode besser.
Reinhard
lug-dd@mailman.schlittermann.de