Wie Datei via ssh kopieren

ww

Well-Known Member
Hallo Comm,

ein Hinweis zur passenden Manpage wäre schon genug:

Ich habe einen häuslichen Rechner, der via Router online gehen kann und einen Webserver, auf den ich via ssh mit Benutzername@IP-Adresse zugreifen kann. Bei Eingabe des Passworts bin ich auch schon drin.

Wie lautet der Befehl, um eine beliebige Datei sicher auf den heimischen Rechner zu transportieren?

Hintergrund: Ich möchte per Cronjob das Backup einer MySQL-Tabelle saugen.

Danke für Eure Hinweise,
slatat2m
 
Hallo

Da könnte Dir sftp helfen. Die Kommandos dazu sind in der Manpage beschrieben.

Gruss Scnaeg
 
morpheus@freebsd-wk# scp access.tar.bz2 morpheus@192.168.1.1:/home/morpheus

access.tar.bz2 ist dabei das file auf dem rechner auf dem du gerade eingeloggt bist und auf den anderen server kopieren möchtest, dann kommt der benutzer mit dem du dich auf dem remote-system einloggst, dann die ip des remote systems und schliesslich der pfad wo es hinkopiert werden soll...
das wäre also der fall wenn du auf dem entfernten server eingeloggt bist;

morpheus@freebsd-wk# scp morpheus@192.168.1.1:/home/morpheus/access.tar.bz2 .

wenn du auf dem router eingelogt bist, kannst du es auch so kopieren, der punkt am ende bedeutet das das file, in das verzeichniss in dem du gerade bist, kopiert wird
 
@morpheus
morpheus@freebsd-wk# scp access.tar.bz2 morpheus@192.168.1.1:/home/morpheus
dass Du ...1.1:/home/morpheus schreibst ist unnötig weil wenn nichts nach dem Doppelpunkt steht automatisch im ~ des genannten Users geschrieben wird
 
Hallo zusammen und vielen Dank für Eure schnellen Antworten,

es ist ja nicht so, daß ich nicht man scp, man ssh gelesen hätte: Was ich nur nicht kapiere ist, wo den mein Passwort eingetragen wird?

Ich muß doch mein Passwort angeben, wenn ich auf den Remoterechner zugreifen will??

Falls ich auf dem Schlauch stehe, bitte ich um Nachsicht: Es war spät gestern und die Zeitumstellung macht mir zu schaffen :-)

slatat2m
 
die passwortabfrage kommt dann schon ganz von alleine ;)
Bei ssh gibst du das passwort ja auch nicht in der Kommandozeile an.

Genau wie's bei ssh läuft, läuft's auch bei scp.
 
Original geschrieben von Illuminatus
@morpheus
morpheus@freebsd-wk# scp access.tar.bz2 morpheus@192.168.1.1:/home/morpheus
dass Du ...1.1:/home/morpheus schreibst ist unnötig weil wenn nichts nach dem Doppelpunkt steht automatisch im ~ des genannten Users geschrieben wird

damit wollte ich ja auch nur die syntax zeigen das man einen doppelpunkt braucht zwischen ip und pfad;
nächstes mal nehme ich nicht das home-directory ;)

@slatat2m: einfach den befehl ausführen, dann kommt auch die passwort-abfrage...
 
Original geschrieben von chaos
die passwortabfrage kommt dann schon ganz von alleine ;)
Bei ssh gibst du das passwort ja auch nicht in der Kommandozeile an.

Wenn ich den OP richtig verstanden habe, möchte er das ganze als Cron-Job ausführen. Dann wird das mit der Paßwortabfrage nicht funktionieren...

Das kann man mit SSH-Keys natürlich automatisieren. Ohne slatat2m zu nahe treten zu wollen, glaube ich jedoch, daß er sich mit der Materie nicht auskennt. Das ist bei solch sicherheitskritischen Dingen wie SSH-Keys gefährlich.

Ich würde daher als gute Einstiegslektüre in dieses Thema "SSH, The Secure Shell" von O'Reilly empfehlen. Da wird auch ausführlich darauf eingegangen, wie man SSH-Keys erzeugt und sicher verwaltet. Wie gesagt, wenn man mit SSH-Keys nicht richtig umgeht, macht man das ganze System unsicherer als durch Verwendung der r-Tools.
 
@0815Chaot:

Du trittst mir keinesweg zu nahe, weil ich ja um Hilfe gebeten habe und liegst mit Deiner Vermutung ziemlich gut: Ich habe eine sehr dünne Ahnung von SSH. Da ich gerade erst dabei bin, in die wunderbare Welt von Unix einzutreten, sind schwere SSH-Bücher von O`Reilly momentan zu speziell.

Ich dachte ursprünglich, es wäre ein Einzeiler, eine gewünschte Datei - sicher - von Server X auf einen lokalen Rechner zu saugen.

Deine Vermutung mit dem Passwort ist richtig: Via Cronjob kann ich natürlich nicht interaktiv ein Passwort eingeben.

Ginge es eventuell, das Vorhaben via rsync und Cronjob durchzuführen?

Schönen Abend,
slatat2m
 
Original geschrieben von slatat2m
Da ich gerade erst dabei bin, in die wunderbare Welt von Unix einzutreten, sind schwere SSH-Bücher von O`Reilly momentan zu speziell.

Ich würde das Buch keineswegs als "schwer" bezeichnen. Das richtet sich ausdrücklich auch an Endbenutzer und ist recht verständlich geschrieben. Natürlich steht auf den 500 Seiten wirklich alles über SSH und die Implementierung auf den verschiedensten Betriebssystemen, aber man muß das ja nicht alles lesen ;)

Ich dachte ursprünglich, es wäre ein Einzeiler, eine gewünschte Datei - sicher - von Server X auf einen lokalen Rechner zu saugen.

Naja, das Saugen ist natürlich schon ein Einzeiler. Aber es soll ja sicher sein. Da gehört u.a. ein Paßwort oder etwas paßwortähnliches einfach dazu.

Deine Vermutung mit dem Passwort ist richtig: Via Cronjob kann ich natürlich nicht interaktiv ein Passwort eingeben.

Und deswegen nimmt man in solchen Fällen SSH-Schlüssel. Die sind auch ansonsten ganz praktisch, wenn man nicht ständig sein Paßwort eingeben will. Aber die erfordern natürlich eine Menge Umsicht. Was passiert, wenn ein solcher Schlüssel an den Falschen gerät, kannst du dir ja bestimmt ausmalen.

Ginge es eventuell, das Vorhaben via rsync und Cronjob durchzuführen?

Mit rsync kenne ich mich nicht so gut aus. Schau eventuell mal in der Doku nach. Irgendeinen Sicherheitsmechanismus gibt es da IMO. Ich weiß aber gerade nicht, ob der paßwort- oder IP-basiert ist. Was ich allerdings nicht glaube, ist, daß dort auch mit Schlüsseln im Sinne von SSH-Keys gearbeitet wird.

Wenn der Schutz IP-basiert wäre, könntest du IMO auch gleich rcp benutzen...
 
Mach dir einen extra Schluessel fuer den cronjob, und fuege ihn in die authorized_keys auf dem Zielhost ein. Dann kannst du jetzt waehlen, entweder laesst du die Passphrase leer (sehr schlecht), ODER du gibst eine Passphrase an, und gibst dem cronjob z.B. per expect oder aehnlichem das Passwort (auch nicht besser) ODER du verwendest ssh-agent(1) (am besten). Wie du aber den ssh-agent mit dem cronjob verbandelst muesste ich mir noch genauer ueberlegen...
 
und wenns ned unbedingt per ssh sein muss kannst du dir das auch mailen......

test# echo "backup" | mutt -a /pfad/zu/deiner/datei -s "backup on xyz" deine@email.de

du solltest dir die datei natürlich vorm senden verschluesseln.

just my 2 cent

k33n
 
Zurück
Oben