SCP Client
SCP Client
Moin Moin,
ich habe z.Zt. ein kleines Problem. Ich muss gewisse Ordner von einem Server zu einem anderen transferieren.
Dabei handelt es sich um mehrere Dateien die ich in einer Liste aufgeordnet habe, die sich nicht mit einer Wildcard zusammenfassen lassen. Keys austauschen, sowie "rsync" oder ähnliche Tools nachinstallieren ist ebenfalls nicht möglich.
Jetzt ist die Frage, wie kann ich am besten die ganzen Dateien transferieren ?
Gibt es die Möglichkeit in einer Art Shellskript + For-Schleife das Passwort für SCP festzulegen und die Kopien machen zu lassen ?
Oder gibt es vielleciht soetwas wie ein SCP-Client, mit dem ich mich einlogge und nur die GET-Befehle reinkopiere ( ähnlich (S)FTP ) ?
MfG Daether
ich habe z.Zt. ein kleines Problem. Ich muss gewisse Ordner von einem Server zu einem anderen transferieren.
Dabei handelt es sich um mehrere Dateien die ich in einer Liste aufgeordnet habe, die sich nicht mit einer Wildcard zusammenfassen lassen. Keys austauschen, sowie "rsync" oder ähnliche Tools nachinstallieren ist ebenfalls nicht möglich.
Jetzt ist die Frage, wie kann ich am besten die ganzen Dateien transferieren ?
Gibt es die Möglichkeit in einer Art Shellskript + For-Schleife das Passwort für SCP festzulegen und die Kopien machen zu lassen ?
Oder gibt es vielleciht soetwas wie ein SCP-Client, mit dem ich mich einlogge und nur die GET-Befehle reinkopiere ( ähnlich (S)FTP ) ?
MfG Daether
Re: SCP Client
Generell wäre es ganz toll "sshfs" mit "fuse" zu nutzen. Dann könntest du "rsync" oder "cp" nutzen. Da du jedoch wohl nichts installieren kannst, fällt das wohl weg.
Vielleicht kannst du aber für Perl ein paar Bibliotheken einbinden.
http://packages.debian.org/de/lenny/libnet-scp-perl
Hier ein paar Beispiele für SCP und SFTP:
http://search.cpan.org/~ivan/Net-SCP-0.08/SCP.pm
http://search.cpan.org/~dbrobins/Net-SF ... et/SFTP.pm
Vielleicht kannst du aber für Perl ein paar Bibliotheken einbinden.
http://packages.debian.org/de/lenny/libnet-scp-perl
Hier ein paar Beispiele für SCP und SFTP:
http://search.cpan.org/~ivan/Net-SCP-0.08/SCP.pm
http://search.cpan.org/~dbrobins/Net-SF ... et/SFTP.pm
Re: SCP Client
Hi,
beide Anleitungen helfen mir leider nicht.
SFPT ist nicht installiert und die Anleitung mit dem PERL-Script verlangt verteielte SSH-Keys.
MFG Daether
beide Anleitungen helfen mir leider nicht.
SFPT ist nicht installiert und die Anleitung mit dem PERL-Script verlangt verteielte SSH-Keys.
MFG Daether
Re: SCP Client
Naja. Das Script erlaubt auch Passwörter bei der Funktion "iscp". Nur jedes Mal es einzugeben ist müßig:
Code: Alles auswählen
#! /usr/bin/perl
use Net::SCP qw(scp iscp);
$source="user\@server:/etc/passwd";
$destination = "passwd";
$scp = new Net::SCP;
$scp->iscp($source, $destination);
Re: SCP Client
Dann könnte ich mir das Skript auch sparen, und einfach den SCP-Befehl vor jede Datei in einem Editor schreiben. Geht mir ja darum das Passwort nichteingeben zu müssen .
Re: SCP Client
Ansonsten vielleicht noch expect, wobei das natürlich auch erst mal installiert sein muss...
MfG GoKi
:wq
:wq
Re: SCP Client
Ich schaue es mir gleich mal an,
ich habe mich glaube ich etwas falsch ausgedrückt.
Clientseitig kann ich installieren wie ich lustig bin. Nur auf dem Server auf dem die Dateien liegen kann ich nichts installieren.
MfG Daether
ich habe mich glaube ich etwas falsch ausgedrückt.
Clientseitig kann ich installieren wie ich lustig bin. Nur auf dem Server auf dem die Dateien liegen kann ich nichts installieren.
MfG Daether
Re: SCP Client
Den ssh-agent laufen lassen, von dem sich scp die Passwörter holen kann?
Der/die Benutzer@Server, für den der login durchgeführt wird, kann ja Keys für sich erstellen.
dessen Private-Key auf den Client kopieren und dann 'scp -i Private-Key ...' ausführen?
Ist nur die Frage, ob der SSH-Server so eingestellt ist, Key-Authentifizierung zuzulassen.
Der/die Benutzer@Server, für den der login durchgeführt wird, kann ja Keys für sich erstellen.
dessen Private-Key auf den Client kopieren und dann 'scp -i Private-Key ...' ausführen?
Ist nur die Frage, ob der SSH-Server so eingestellt ist, Key-Authentifizierung zuzulassen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: SCP Client
Moin Moin,
habe mich nun an expect versucht, da der Server keine Authentifizierung per Key erlaubt ...
Mein Code zu expect sieht folgendermaßen aus :
Der SCP-Befehl funktioniert per Hand. Im Skript taucht für einige Sekunden der "Password:"-Text auf. Nach ein paar Sekunden lande ich dann wieder auf meiner Shell, die Dateien wurden dann aber nicht transferiert.
Hat jemand eine Idee was ich falsch mache ?
MfG Daether
habe mich nun an expect versucht, da der Server keine Authentifizierung per Key erlaubt ...
Mein Code zu expect sieht folgendermaßen aus :
Code: Alles auswählen
#!/usr/bin/expect -f
set host "localhost"
set user "root"
set pass "ichbindaspass"
spawn scp -r $user@$host:/root/test/moveme/ /root/test/testify/
expect {
# "Sicher weiter verbinden?" {
# send "yes\n"
# }
"password:" {
send "$pass\r"
}
}
close
exit
Hat jemand eine Idee was ich falsch mache ?
MfG Daether
Re: SCP Client
Wieso send "$pass\r"? Da sollte doch wohl eher \n stehen oder?
Kenne mich mit expect nicht wirklich aus, aber solltest du da nicht auch nach Password: matchen, also die Gross-/Kleinschreibung beachten?
Kenne mich mit expect nicht wirklich aus, aber solltest du da nicht auch nach Password: matchen, also die Gross-/Kleinschreibung beachten?
Re: SCP Client
Versuch mal sowas:
Code: Alles auswählen
#!/usr/bin/expect -f
set host "localhost"
set user "root"
set pass "ichbindaspass"
set timeout 30
spawn scp -r $user@$host:/root/test/moveme/ /root/test/testify/
expect {
"password:" {
send "$pass\r"
} timeout {
exit
}
}
expect {
} timeout {
exit
} -re . {
exp_continue
} eof {
exit
}
}
MfG GoKi
:wq
:wq
Re: SCP Client
Moin Moin,
gab 2 Fehler in meinem Skript.
1. "password" muss groß geschrieben werden.
2. Es fehlte noch ein "interact" das die Eingabe praktisch absendet.
Hier das funktionierende Skript :
gab 2 Fehler in meinem Skript.
1. "password" muss groß geschrieben werden.
2. Es fehlte noch ein "interact" das die Eingabe praktisch absendet.
Hier das funktionierende Skript :
Code: Alles auswählen
#!/usr/bin/expect --
spawn scp -r root@localhost:/root/test/vonhierl/ /root/test/nachda/
expect {
"Password:" {
send "meinpass\r"
interact
}
}
exit