PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : scp ohne seperate Passwortabfrage?



dipesh
22.08.02, 11:11
Hi,

nach durchwälzen des Internets und NULL bzw. NIL gefundenen Lösungsvorschlägen hoffe ich jemand hier kann mir bei dem Prob helfen...

Ausgangslage ist folgende;
In einem Script sollen mehrere Dateien mittels scp (secure copy) auf einen Server verteilt werden. Quell- und Zielverzeichnisse können dabei unterschiedlich sein. SSH lässt sich leider nicht auf dem Server zur Identifizierung/Authentifizierung mittels PK umstellen. Ausschliessl. Passwortauthentif. steht zur Verfügung.

Wie bekommt man es nun hin nicht für jede einzelne Datei welche mit scp rübergeschoben wird das Passwort neu angeben zu müssen?

Beispielhafter Auszug einer eben solchen Scriptdatei;
scp /home/ideefix/bla.shtml 192.169.0.7:/gagamail/bla.shtml
scp /opt/test/nana.pdf 192.169.0.7:/home/joghurt/nana.pdf

Es muss doch möglich sein dem scp-Befehl in irgendeiner Form dazu zu bringen ein Passwort nicht ausschliesslich von der Kommandozeile empfangen zu wollen!
Der Parameter "-q" ist ja schon mal ein Anfang, wenn es etwas wie einen Parameter "-passwd meinpasswort" geben würde :-(

Jemand eine Idee???

MrIch
22.08.02, 11:45
du musst dafür die SSH Schlüssel auf den Maschinen in und exportieren!

http://www.cs.umd.edu/~arun/misc/ssh.html
http://www.cvm.uiuc.edu/~ms-drake/linux/ssh_nopw.html

dipesh
22.08.02, 12:26
Wenn dem so einfacher wäre, hät ich wohl die Frage nicht stellen müssen ;)

SSH lässt sich leider nicht auf dem Server zur Identifizierung/Authentifizierung mittels PK umstellen.

bedeutet: es gibt keine Möglichkeit auf dem Server als root zu aggieren und sshd in der Weise umzukonfigurieren! Authentifizierung ist ausschliesslich mittels Passwort möglich.

Gibt es event. die Möglichkeit sämtliche Dateien des Quellservers in ein tar zu packen, mittels scp zu übertragen und auf dem Zielserver wieder zu entpacken und dabei die Verzeichnisstruktur (Dateien befindet sich NICHT alle im selben Verzeichnis!!!) wie gewünscht umzubiegen?
Ganz praktisch wäre natürlich auch, wenn man ein Shellscript miteinpacken könnte welches nach dem auspacken automatisch ausgeführt wird und diese Aufgaben erledigt...

oder vielleicht ist es auch möglich mehrere cp-Befehle oder vergleichbares zu tunneln? ssh ist übrigens die einzige Möglichkeit auf den Server zu gelangen.

Das Problem ist weniger, dass man 1x das Passwort eingeben muss, als dass dies für jede zu übertragene Datei notwenig ist. Schade das scp es anscheinend nicht zulässt, auf einen rutsch mehrere Dateien aus unterschiedlichen Verzeichnissen zu übertragen :-(

Jemand eine Idee???

slime
22.08.02, 12:36
scp ohne passwort funzt!
dazu brauchst du protokoll v2 und RSAAuthentification.

du musst eine schlüsslepaar mit rsa-keygen erzeugen und dann den privaten schlüssel am remote-host in die datei .ssh/authorized_keys kopieren.

dann beim aufbau der ssh-verbindung den parameter -i <schlüssel> angeben und du wirst dann über den schlüssel ohne passwort authentifiziert.

dipesh
22.08.02, 12:59
Ich habe keinen Zugriff auf den remote-host! Das einzige was ich dort machen kann ist in meinem Homeverzeichnis Dateien abzulegen - mehr nicht!!! Da auf dem Remote-Host weder ein ~/.ssh/ Verzeichnis existiert, noch ich eines anlegen kann, noch Zugriff auf /etc/ssh/* habe, noch root bin oder Einfluss auf diesen habe scheidet dieser Weg leider aus.

Es muss doch möglich sein mehrere Dateien zu übertragen OHNE für jede Datei das Passwort angeben zu müssen.

taylor
22.08.02, 13:34
Jungs Jungs... er hat doch von Anfang an gesagt, dass er keine RSA Auth. machen kann/darf ;)

Mir fällt leider auch nicht's vernünftiges ein, und in die Manpage zu scp hast Du sicher selbst schon geschaut.

Meine (zugegeben, etwas doofe) Idee:


mkdir ~/scp_temp
cd ~/scp_temp
cp -s /home/ideefix/bla.shtml .
cp -s /opt/test/nana.pdf
...
scp * 192.169.0.7:/tmp
rm *

Wobei mir bewusst ist, dass Du so natürlich nur ein Zielverzeichnis hast.

Gruß,
Taylor

MrIch
22.08.02, 14:10
funktioniert bei dir vielleicht auf sftp? Wenn ich mich nicht irre ist das nichts anderes als scp nur mit ftp Kommandos, da kann man sicher automatisieren!

3qualizer
22.08.02, 14:36
@slime

ich hab die Schlüssel erzeugt und kopiert und jetzt darf ich beim Verbinden sogar 2 Passwörter eingeben (Passphrase und Passwort)...



eric@a1100$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/eric/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/eric/.ssh/id_rsa.
Your public key has been saved in /home/eric/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx eric@a1100.3qualizer.de

eric@a1100$ scp .ssh/id_rsa 192.168.1.202:.ssh/authorized_keys

id_rsa 100% |**********| 963 00:00

eric@a1100$ ssh 192.168.1.202

eric@192.168.1.202's password:

eric@lap800$ ssh -i ~/.ssh/authorized_keys 192.168.1.1

Enter passphrase for key '.ssh/authorized_keys':
eric@192.168.1.1's password:

eric@a1100$


was mach ich schon wieder falsch...?

Eric

dipesh
22.08.02, 15:06
danke taylor :-) Hab schon gedacht ich mache irgendetwas falsch und da gäbe es einen mir unbekannten Weg die Konfig von sshd zu ändern ohne dafür die Berechtigung zu haben *g*

Ein ganz dickes danke an MrIch !!! Auf die Idee sftp über ein Script zu steuern bin ich nicht gekommen. Gem. manpage bietet sftp einen Batchmode :-))) Ideal für meine Zwecke - vielen dank!

MrIch
22.08.02, 15:23
kein Problem, man hilft ja wo man kann...

3qualizer
22.08.02, 15:24
Wieso gibts nicht einfach ne Anleitung a la gentoo?...
Das "beste" was ich hinbekommen hab, ist meinen public-key auf den Server schieben (server:.ssh/authorized-keys). Dann muss ich "nur" noch die Passphrase eingeben... :mad:

Eric

slime
22.08.02, 16:05
wenn du als passphrase enter eingibts dann musst du nich mehr eingeben.
das wars.

3qualizer
22.08.02, 16:16
nicht wirklich:



eric@lap800$ ssh 192.168.1.1

Enter passphrase for key '/home/eric/.ssh/id_rsa':
eric@192.168.1.1's password:

taylor
22.08.02, 16:23
Original geschrieben von slime
wenn du als passphrase enter eingibts dann musst du nich mehr eingeben.
das wars.
Natürlich beim Generieren des Schlüssels ;)

taylor
22.08.02, 16:27
Ach, ich erinnere mich dunkel...

War das nicht auch so, das RSA Schlüssel nur mit SSH1 laufen, und SSH2 gerne DSA (?) Schlüssel hätte?

In dieser Konfiguration läuft es zumindest bei mir... liegt aber schon länger zurück, dass ich das eingerichtet habe.

Ein paar Zeilen aus /etc/ssh/sshd_config


Protocol 2
HostKey /etc/ssh/ssh_host_dsa_key
StrictModes yes
RSAAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PasswordAuthentication yes
PAMAuthenticationViaKbdInt yes

Vieleicht hilft's was...

3qualizer
22.08.02, 16:43
jau, das kunktioniert!

Danke, Eric.

PS: das ist doch sicher oder? (Rechner ist oft den ganzen Tag online...)

3qualizer
22.08.02, 16:50
@taylor:

man ssh-keygen:

ssh-keygen generates, manages and converts authentication keys for
ssh(1). ssh-keygen can create RSA keys for use by SSH protocol version 1
and RSA or DSA keys for use by SSH protocol version 2.

Eric

taylor
22.08.02, 17:01
Also ins Internet würde ich den ohne Passwort jetzt nicht unbedingt stellen, aber wie paranoid man sein System einstellt, bleibt letztendlich ja jedem selbst überlassen.

slime
22.08.02, 18:57
das ist ja nicht "wirklich" ohne passwort.
du musst dich ja mit RSA/DSA authentifizieren.

und es ist viel wahrscheinlicher das jemand dein passwort klaut als das jemand deinen private key kopiert.

taylor
23.08.02, 11:21
Wie ich sagte, es bleibt jedem selbst überlassen ;)
Auch wenn ich Dir in dem Punkt ansich Recht gebe.