Portál AbcLinuxu, 26. dubna 2024 19:29


Dotaz: Jak na sftp ve while

16.10.2021 17:56 gusta
Jak na sftp ve while
Přečteno: 438×
Odpovědět | Admin
Ahoj, jak napsat příkaz ve while který by každých 5 minut stáhl soubory přes sftp aniž bych musel pokaždé zadávat heslo? Děkuji

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (Andrej)
16.10.2021 18:31 X
Rozbalit Rozbalit vše Re: Jak na sftp ve while
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nastav si o autentizaci klicem.
16.10.2021 19:28 gusta
Rozbalit Rozbalit vše Re: Jak na sftp ve while
Děkuji ale pokud je to možné, tuto volbu nechci, chtěl bych zadat jednou heslo při přihlášení a pak až po dalším přihlášení.
16.10.2021 19:59 X
Rozbalit Rozbalit vše Re: Jak na sftp ve while
..chtěl bych zadat jednou heslo při přihlášení a pak až po dalším přihlášení.
Co myslis tim "az po dalsi prihlaseni"? Bavime se o SSH, nebo o systemovem prihlaseni?
16.10.2021 20:36 gusta
Rozbalit Rozbalit vše Re: Jak na sftp ve while
Stále se bavíme o sftp. Další přihlášení proběhne po dokončení/přerušení striptu.

Potřebuji něco jako
while true
do
  sftp user@host:dir-local dir-remote
  sleep 300
done
Řešení 1× (Andrej)
Jendа avatar 16.10.2021 23:04 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak na sftp ve while
To se řeší pomocí ssh agenta, který odemkneš a on si pak drží rozšifrované klíče jen v paměti a ssh je používá.

Jinak pokud fakt trváš na heslu, tak existuje sshpass.
16.10.2021 20:35 billgates | skóre: 27
Rozbalit Rozbalit vše Re: Jak na sftp ve while
Odpovědět | | Sbalit | Link | Blokovat | Admin
Napriklad pomocou curl, ktory sftp vie:
curl  -k "sftp://host/subor" --user "user:password" -o "subor"
16.10.2021 20:54 gusta
Rozbalit Rozbalit vše Re: Jak na sftp ve while
Je to takto správně? A to má soubor odeslat nebo stáhnou? Díky
while true
do
  curl  -k "sftp://192.168.1.92/home/gusta/myfile" --user "gusta:acvFGd458@#gf" -o "/var/myfile"
  sleep 300
done
k3dAR avatar 16.10.2021 21:19 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: Jak na sftp ve while
nebo takhle
while true; do
  curl --silent sftp://192.168.1.92/home/gusta/myfile --user "gusta:acvFGd458@#gf" --output /var/myfile
  sleep 5m
done
podle prodlouzene -o volby ti odpoved snad dojde ;-)
porad nemam telo, ale uz mam hlavu... nobody
16.10.2021 22:24 gusta
Rozbalit Rozbalit vše Re: Jak na sftp ve while
Nejede to :( Dostanu chybu : curl: (79) Error in the SSH layer

btw: Nevíš prosím zda tímto příkazem jde stahovat/nahrávat celý adresář?

Ještě jsem našel nějaký rsync, ten jede dobře, dokonce umí nahrát jen soubory které se opravdu změnily.. ale tam se musí pokaždé taky zadat heslo.
Jendа avatar 16.10.2021 23:07 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak na sftp ve while
Nejede to :( Dostanu chybu : curl: (79) Error in the SSH layer
curl -vvv
Ještě jsem našel nějaký rsync, ten jede dobře, dokonce umí nahrát jen soubory které se opravdu změnily.. ale tam se musí pokaždé taky zadat heslo.
Ano, pokud můžeš použít rsync, je to nejvhodnější (nejrychlejší a tak).
16.10.2021 23:31 gusta
Rozbalit Rozbalit vše Re: Jak na sftp ve while
Ano, pokud můžeš použít rsync, je to nejvhodnější (nejrychlejší a tak). A opravdu neexistuje způsob jak ho přinutit aby nechtěl pokaždé heslo?
Jendа avatar 17.10.2021 00:51 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak na sftp ve while
Existuje, ale prozradím ti ho až po tom, co mi napíšeš, proč nechceš klíče.
17.10.2021 10:45 gusta
Rozbalit Rozbalit vše Re: Jak na sftp ve while
Proč nechci klíče je velmi jednoduché, pokud použiju klíče a mám zakázáno přihlášení root, přihlásím se na server nějakým jiným uživatelem a až teď se můžu přihlásit jako root, no a to musím zadat heslo, tak k čemu klíče :(

17.10.2021 14:06 pavele
Rozbalit Rozbalit vše Re: Jak na sftp ve while
1. Protože MITM

2. Nikdo tě nenutí mít zakázané přihlašování na root.

3. Ke stahování souboru potřebuješ pracovat pod uživatelem root?
Jendа avatar 17.10.2021 16:39 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak na sftp ve while
Takže ty potřebuješ nejen zadat heslo na SSH, ale ještě uvnitř té session udělat su na roota, zadat heslo na roota a pak teprve zkopírovat ten soubor? A když se přihlašuješ normálně, tak zadáváš dvě hesla (jedno na ssh a jedno pak na su), nebo máš nějaký wrapper? To tu absurditu dost prohlubuje.

Osobně mám teda přihlášení na roota všude povolené (jen klíčem), a vím o jediné bezpečnostní díře kdy to mohlo způsobit problém, a ta byla objevena (a samozřejmě opravena) v roce 2008. Víš o nějakém aktuálním důvodu proč mít zakázané přihlášení na roota?

Ale abys neřekl že jsem nesplnil slib:
rsync -avhPe "sshpass -p acvFGd458@#gf ssh" gusta@192.168.1.92:/home/gusta/myfile /var/myfile
18.10.2021 12:49 [Jooky]
Rozbalit Rozbalit vše Re: Jak na sftp ve while
Odpovědět | | Sbalit | Link | Blokovat | Admin
Treba k tomu vyuzit SSH_ASKPASS. Ssh ma podporu na pracovanie v X11 prostredi. Ked nejaka appka zavola na pozadi ssh, tak so spravnym nastavenim si ssh zavola X11 utilitku, ktora zobrazi prompt na zadanie hesla. Uzivatel zada heslo a ssh pokracuje dalej na pozadi. Tato funkcia sa da "vyuzit" v scriptoch na automaticke zadavanie hesla.

ako pru vec si treba pripravit script, ktory bude nahradzat funkciu X11 applikacie. Nieco ako:
#!/bin/bash

echo 'heslo'

# EOF
Script musi byt spustitelny z prostredia, kde sa bude volat ssh (e.g. mat aspon rx v kontextu volajuceho).

V hlavnom scripte treba presvedcit ssh, ze ide v X11 prostredi a ma si vyziadat heslo (realne X11 ani instalovane nemusi byt). Robi sa to nasledovne:

1. premena DISPLAY musi byt nastavena na nieco, co vypada ako X11 sessna
2. premena SSH_ASKPASS musi obsahovat celu cestu k prvemu scriptu
3. ssh musi bezat bez terminalu

Prve dva sa daju spravit nasledovne:
# set auto-password login
export SSH_ASKPASS="/etc/backup/login-script"
export DISPLAY=":0"

Tretia vec: Ked bezi script napr z cronu, alebo backup prostredia a podobne, tak terminal nema, cize to funguje rovno. Ak je spusteny z klasickej konzoly, tak tento stav treba navodit napr cez setsid script.sh

ps: nechapem co tu vsetci dookola splietaju o klucoch. Nie vzdy sa da / moze nahrat ssh kluc na cielove zariadenie. Hlavne ak ide o nejaku uzavretu krabicku, kde clovek je rad uz len za to ssh ...

ps2: funguje to aj s rsync. Staci len vynutit pouzitie systemoveho ssh. Napriklad cez -e ssh ...

ps3: ssh posiela scriptu informaciu user@server z ssh pripojenia. Vdaka tomu ide v tom askpass scripte aj vyberat "spravne heslo", ak sa jeden pouziva na viacej pripojeni. (Ja som si vzdy spravil viacej scriptov s jednym heslom, ale je tu aj taka moznost.)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.