SFTP console auto upload unter linux

Guten Abend,
Ich komm nciht mehr weiter. Nach 3 Tagen vergeblichem Suchen nach einem befehl für einen sftp automatisierten upload

es muss ihne fremde eingabe sein!

gegeben wäre das eine datei (Bsp.: Backup.tar.gz) in das Homeverzeichniss des SFTP’s gelegt wird.

Ich hab zwar viele seiten dazu gefunden, aber es will einfach nicht funktionieren. vieleicht sind die seiten auch zu alt oder … .
die authorisierungsdatei bzw key ruft er selbstständig schon auf

mit dem Befehl muss er sich einlogen die datei hochladen und das programm wieder beenden im idealfall sollte er noch kontrollieren ob die datei dir richtige größe hat

Hallo,

Schlüssel sind der Schlüssel…
Wenn du des Englischen mächtig bist hilft dir diese Seite bestimmt: http://stackoverflow.com/questions/1360672/using-net…

Schönen Gruß
Max

Hallo Haclebein.

Für mich klingt das nach einem Versuch, ein Backup auf einem entfernten Rechner an zu legen.

Dafür gibt es das sehr hilfreiche Werkzeug rsync, das bevorzugt über SSH synchronisieren kann.
http://wiki.ubuntuusers.de/rsync

Ansonsten tut wahrscheinlich der Befehl scp das, was Du möchtest: scp /home/haclebein/Backup.tar.gz [email protected]:Backup.tar.gz

Hilft Dir das weiter?

Besten Gruß

auf den entfernten rechner hab ich aber kein scp zugriff

es wird kein Backup, das war ein ebispiel was mir eingefallen ist.

SFTP bedeutet ja normalerweise, dass FTP über SSH getunnelt wird. Wenn das bei Dir funktioniert, bedeutet das, dass Du SSH-Zugriff hast.

SCP läuft ja auch nur über SSH, und müsste damit genauso funktionieren.

Sprich wenn Du SSH-Zugriff hast, hast Du auch SFTP- und SCP-Zugriff.

auf den entfernten rechner hab ich aber kein scp zugriff

es wird kein Backup, das war ein ebispiel was mir eingefallen
ist.

ohhhhh mal ausprobieren :smiley:

Ich habs mit scp ausprobieret und es funktioniert wunderbar :smile: Danke

ich hab jetzt folgendes um eine einzelnde Datei hochzuladen:
scp -qr ./backup user@host:/

jetzt fragt er nur noch nach dem pw. wenn ich das eingetippt habe macht er den rest von selbst

wie funktioniert das jetzt das ich das pw nciht mehr eingeben muss?

Also dazu funktioniert nur ein Skript. Ich schreibs dir hier schnell mal nieder

#!/bin/bash

dest=„[email protected]

md5sum bilden um die Übertragung zu verifizieren

md5=$(/usr/bin/md5sum Backup.tar.gz | awk ‚{ print $1 }‘)

/usr/bin/scp

/usr/bin/scp Backup.tar.gz $dest:~

prüfen der md5sum auf dem server

md5_2=$(/usr/bin/ssh $dest „/usr/bin/md5sum Backup.tar.gz | awk ‚{ print $1 }‘“)

if [$md5 != $md5_2]; then
echo „Übertragung fehlgeschlagen“
fi

Dieses Skript in eine Datei kopieren und mit
chmod a+x skript
ausführbar machen.

Natürlich musst du oben noch den Parameter ändern und auch den Pfad zur Backup.tar.gz beim scp Kommando angeben.

Kannst du dich per ssh schon automatisch ohne Passwortabfrage einloggen?

Ich hoffe, dass hilft dir erstmal weiter.
Ciao
Thorsten

Kannst du dich per ssh schon automatisch ohne Passwortabfrage
einloggen?

nein leider nicht möchtest du mir das auchnoch erzählen wie das geht?

Na klar,
hier erstmal die Namensgebung, die ich verwenden werde:
Rechner A: Der Rechner auf dem du dich später automatisch einloggst
Rechner B: Der Rechner mit dem du dich später auf Rechner A automatisch einloggst

auf B bitte als dein Benutzer folgendes ausführen
ssh-keygen -t rsa
Das wird dich nach einem Pfad und dem Passphrase fragen. Hier einfach alles mit Enter bestätigen.
Danach solltest du unter
/home/deinuser/.ssh/
die Dateien id_rsa.pub und id_rsa liegen haben.
dann mit
cat /home/deinuser/.ssh/id_rsa.pub
den öffentlichen Schlüssel ausgeben und die Zeilen kopieren.
Sieht beispielsweise so aus
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEApZ1SDiPzlfUPiU0Upt8Ggj5AyIVJG66wwPs44X9TicoEVTMYk9NYoiElRJEITi8W/mcUjyUxO5tCkE9TZOgwe3R/G4T9Gt550f8SSwm7/zqApbhIaTONTBA15JvhM8q7dSxJknk3ixm00QeupXsmAdiiJczDC7oBb0sZm00/y38/NvADZ9/ufLU8jWexv5lalY3XV4dTactJxvUrKS8oK3WtPepuO2WX0YN1T61nvXA3/q9huHqMpHppag4n0ikw0PuL4hYnBHv0etqIbbLMNNVftMx6Qupi2UUedGK8BciL7SHEE4wDDcuLHzDOqRrtYUiIFTD0rUAMq091qJt23CPHuabh76VNZUU0vY/NBsJwAgwzMPkoLwgVuJ+Sqvp/XT7cVrdd2Zwqk/lB2mxp+3I81/LAmtPsGyGa2enNoujg/AOCIwqn7CmOYyWnzIBEDpuLO3/1y4QA1M16sSZZ4qWkPRSV6D6MXpS2tngrR8RvzxKPvcFGcO0kPg3w+LAVfsFbVM4UUeLLH6ytgy1N5nTGEVQbi0KF8cOs5RUksj8F9IkAE7WrDv7+VtmDipbkoemO4v0Q5GkJVvkNgfDo52+dfOQf7Ecg28Vo4dRbJk9UN3+dr1sVrc/tF02pwmKde2rLW3UqnsMSUj2bxEiAUUGbzw8kHXx00XFdKaI4gEM= thorko@thorko-laptop

Diese Zeilen müssen auf den Rechner A und dort in das Homeverzeichnis des Users mit dem du dich dort einloggst.
Dort legst du dann folgendes an
/home/loginuser/.ssh/authorized_users
in die authorized_users müssen die Zeilen von oben.

danach kannst du dich einfach ohne Passwortabfrage von Rechner B zu Rechner A einloggen
ssh [email protected]

Ciao
Thorsten

ich hab die datei per ftp in das verzeichniss /.ssh/ gelegt und trotzdem geht es nicht
beim ersten verbinden kam dieses:

$ ssh user@host
The authenticity of host ‚user@host (xxx.xxx.xxx.xxx)‘ can’t be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‚user@host,xxx.xxx.xxx.xxx‘ (RSA) to the list of known hosts.
user@host’s password: bye

ich hab die datei per ftp in das verzeichniss /.ssh/ gelegt
und trotzdem geht es nicht
beim ersten verbinden kam dieses:

$ ssh user@host
The authenticity of host ‚user@host (xxx.xxx.xxx.xxx)‘ can’t
be established.
RSA key fingerprint is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes

Also dies hier sollte nur einmalig kommen. Beim nächsten Einloggen darf das nicht mehr auftreten, da er ja den key in known_hosts hinterlegt hat.

Warning: Permanently added ‚user@host,xxx.xxx.xxx.xxx‘ (RSA)
to the list of known hosts.
user@host’s password: bye

Es scheint mir der Server hat ein Problem mit dem SSH Dienst und der Konsole und es liegt nicht an der Keyauthentifizierung
Ciao
Thorsten

$ ssh -vv user@host
OpenSSH_5.1p1 Debian-5, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to host [xxx.xxx.xxx.xxx] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug2: key_type_from_name: unknown key type ‚-----BEGIN‘
debug2: key_type_from_name: unknown key type ‚-----END‘
debug1: identity file /root/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /root/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version mod_sftp/0.9.7
debug1: no match: mod_sftp/0.9.7
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-5
debug2: fd 3 setting O_NONBLOCK
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,[email protected],aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,[email protected],aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1,rsa1024-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,blowfish-ctr,blowfish-cbc,cast128-cbc,arcfour256,arcfour128,3des-ctr,3des-cbc
debug2: kex_parse_kexinit: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,blowfish-ctr,blowfish-cbc,cast128-cbc,arcfour256,arcfour128,3des-ctr,3des-cbc
debug2: kex_parse_kexinit: hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160
debug2: kex_parse_kexinit: hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160
debug2: kex_parse_kexinit: none
debug2: kex_parse_kexinit: none
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: mac_setup: found hmac-md5
debug1: kex: server->client aes128-cbc hmac-md5 none
debug2: mac_setup: found hmac-md5
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024

Am besten natürlich mit der public-key-Authentifizierung für SSH:
http://wiki.ubuntuusers.de/SSH#Authentifizierung-ueb…

Du erstellst zwei Schlüssel: einen privaten und einen öffentlichen. Den öffentlichen lädst Du auf den Server, den privaten behältst Du bei Dir.

Beim Anmelden an den Server weiß dieser dann automatisch, dass Du berechtigt bist.

Um einen Missbrauch des privaten Schlüssels zu vermeiden (wenn er jemandem in die Hände fällt), sollte man diesen mit einer Passphrase (einem Passwort) schützen, das man dann trotzdem immer wieder eingeben muss.

Aber diese Passphrase kann von einer Schlüsselverwaltung (wie sie Gnome hat) gespeichert werden.

Die technische Umsetzung aller dieser Details lies bitte im Internet nach, da kann ich nicht weiterhelfen.

Viel Spaß damit. (=

jupp wie ich mir dachte, da stimmt was nicht mit dem device. Kommst du überhaupt auf den Server und kannst nach dem device schauen?
schau mal ob /dev/ptmx existiert, wenn nicht erstell es mit
MAKEDEV /dev/ptmx
natürlich als user root und probier dich dann nochmal einzuloggen
Ciao
Thorsten

es ist ein Backupserver vom serveranbieter. ich hab nur zugriff auf diesen einnen ordner

es ist ein Backupserver vom serveranbieter. ich hab nur
zugriff auf diesen einnen ordner

kommst du denn nun auf den Server?
Was ist wenn du die Datei authorized_keys auf deinem Rechner erstellst und dann auf den Server rüberkopierst.

Bekommst du eigentlich eine Shell?

nein ich bekomme keine shell

nein ich bekomme keine shell
rüberkopieren hab ich auch schon ausprobiert