Sincronizza file arbitrari con un server


12

Sto cercando un modo per mantenere un file (keepass .kdb) sul mio Droid2 sincronizzato con uno su un server.

  • Questo è solo un file sul filesystem - non contatti, calendario, ecc.
  • Ho bisogno del bidirezionale, non solo di spingere o tirare. Se il server cambia, scaricalo, se Android cambia, caricalo. Sì, ciò può provocare conflitti che devono essere risolti.

Sto usando Unison per raggiungere questo obiettivo tra PC, ma non esiste un client Unison per Android. Ho trovato agitando l'installazione di OCaml su Android e l'esecuzione di Unison su questo, ma spero in qualcosa di nativo.

Botsync sembra promettente, ma è unidirezionale: quando si effettua una configurazione, si sceglie se è upload o download.

Ho visto sugarsync, ma dato che questo è il mio file KeePass, preferirei tenerlo sul mio server.


Stavo per suggerire sugarsync ... ma capisco la preoccupazione
Daniel,

Dai un'occhiata a sparkleshare.org - progetto relativamente nuovo, client Android in lavorazione, credo.
Sparx,

Risposte:


3

Potresti prendere in considerazione un'altra opzione qui, se vuoi usarla per il database delle password di KeePass. Questo non funzionerà con altro materiale sensibile, ma poiché hai richiesto specificamente KeePass, ecco cosa faccio:

  • Proteggi il database con la password (suppongo che tu abbia già) e una chiave. Questo ti darà un'autenticazione a due fattori ("qualcosa che conosci" - la tua password e "qualcosa che hai" - la tua chiave). Il database delle password può essere sbloccato solo quando sono presenti entrambi i pezzi.
  • Copia la chiave nella memoria locale di tutti i tuoi dispositivi e assegnagli un nome poco appariscente. Preferibilmente mettilo in una directory affollata dove sembrerebbe un file di configurazione o un file di rumore casuale creato da un programma.
  • Carica il tuo database su un servizio di archiviazione di terze parti (utilizzo Dropbox, ma altre opzioni funzionerebbero altrettanto bene). Va da sé che il servizio dovrebbe avere un client Android se si desidera utilizzarlo sul proprio dispositivo.

  • NON caricare lì la chiave: utilizzare un altro metodo per copiarla sui dispositivi necessari. Dropbox in particolare conserva una copia dei file che carichi e poi elimina almeno per una settimana a scopo di backup (abbastanza conveniente, devo ammetterlo), ma se la tua chiave è già sul server, non è più sicura di una normale password- database protetto.

  • Configura i tuoi client KeePass per non ricordare la posizione della chiave (ricordare che la posizione del database va bene).

In questo modo, puoi caricare il tuo database su un sito Web casuale e anche se la tua password viene compromessa per qualche motivo (ad es. Logger della tastiera), puoi utilizzare il database solo da dispositivi che hanno la chiave E ora quale file è effettivamente la chiave .

Per comodità, potresti voler avere l'autenticazione solo della chiave su un dispositivo mobile (le password sicure sono noiose da digitare su un dispositivo mobile e ovviamente non vuoi usare nulla di breve e facile qui). Ma sconsiglierei questo, poiché in questo caso la sicurezza è persino inferiore a un database protetto da password - invece di una password che hai in testa, usi una "password" (il file chiave) che si trova sul tuo dispositivo .

KeePass non dà alcun suggerimento se richiede chiave, password o entrambi, il che funziona a tuo vantaggio.


+1 per una buona informazione, sono d'accordo che pass & keyfile dovrebbero essere "sufficienti" per un file keepass. Lascio la domanda senza risposta nella speranza che ci sarà una risposta "ecco un programma che sincronizza" in futuro. Grazie!
Jason Viers,

4

Potresti aver trovato qualcosa di cui sei contento ora, ma ho compilato un binario di unisono che funziona su Android - è possibile usando le istruzioni di agitazione a mano di cui stai parlando - Li ho usati per compilare in modo incrociato il sorgente Linux in Ubuntu 12.10 utilizzando l'NDK Android e con alcune modifiche al codice ora funziona. Segui le istruzioni su https://sites.google.com/site/keigoattic/ocaml-on-android e dovrai fare alcune cose. C'è un file chiamato pty.c nell'origine unisono - trova la seguente sezione:

// openpty
#if defined(__linux)
#include <pty.h>
/*#define HAS_OPENPTY 1*/
#endif

e commentare define HAS_OPENPTY 1come mostrato. È inoltre necessario aprire ubase / util.ml e modificare:

let homeDir () =
  System.fspathFromString "/Your path here"

Commenta da qui:

    (if (osType = `Unix) || isCygwin then
       safeGetenv "HOME"
     else if osType = `Win32 then
(*We don't want the behavior of Unison to depends on whether it is run
  from a Cygwin shell (where HOME is set) or in any other way (where
  HOME is usually not set)
       try System.getenv "HOME" (* Windows 9x with Cygwin HOME set *)
       with Not_found ->
*)
       try System.getenv "USERPROFILE" (* Windows NT/2K standard *)
       with Not_found ->
       try System.getenv "UNISON" (* Use UNISON dir if it is set *)
       with Not_found ->
       "c:/" (* Default *)
     else
       assert false (* osType can't be anything else *))

...A qui!

Quindi dovrai anche modificare Makefile.Ocaml

   CWD=$(shell pwd)
    EXEC_EXT=
    WINOBJS=
    SYSTEM=generic
    # openpty is in the libutil library
    ifneq ($(OSARCH),solaris)
      ifneq ($(OSARCH),osx)
      #  CLIBS+=-cclib -lutil
      endif
    endif
    buildexecutable::
        @echo Building for Unix
  endif
endif

E commentare # CLIBS+=-cclib -lutilcome mostrato.

E per quanto ricordo, tutto ha funzionato. L'altro passaggio, una volta compilato, è montare la partizione di sistema Android come scrivibile e copiare all'unisono nella cartella / system dove si trovano tutti i comandi della shell.

Spero che sia utile a qualcuno ... Ho perso molto sonno durante la compilazione.


2

Faccio esattamente quello che mi chiedi con FolderSync. È un software molto carino, con molte opzioni e funzionalità. Lo uso come alternativa personale a dropbox utilizzando SFTP su SSH con file di chiavi per l'autenticazione. È anche possibile configurarlo per rilevare automaticamente le modifiche sulle repliche locali e attivare un caricamento immediato. Sul mio telefono lo uso per caricare le foto sul mio server non appena le prendo, e funziona perfettamente.


2

Ho anche seguito la radice della compilazione incrociata come indicato nella risposta di ChC

Ho rilasciato UnisonSync che ti consente di unire senza occuparti della riga di comando (e senza il rooting) su Google Play:

Dalla prova del concetto, che stava funzionando rapidamente, all'app pronta per la produzione ci è voluto molto più tempo del previsto, ma ora funziona ed è molto utile per sincronizzare le mie pubblicazioni e il mio archivio di schede tecniche.


1
Probabilmente consoliderò le istruzioni per eseguire la compilazione incrociata a un certo punto presto e inserirò l'unison / dropbear binario da qualche parte, per coloro che preferiscono usare la riga di comando.
Dan,

1

Uso l'unisono montando l'androide con sshfs. Come server SSH utilizzo SSHDroid .

Ma attenzione, l'unisono con sshfs è molto lento. Anche se con un singolo file non dovrebbe importare.


0

Non conosco nulla di nativo che lo fa. Esistono molte app di sincronizzazione dei file, ma tutte quelle che ho visto sono unidirezionali o si basano sull'utente per sincronizzare manualmente il file dal telefono al cloud. Quello che intendi fare dovrebbe essere possibile con l'API di Dropbox ma non so se sei disposto a creare la tua app personalizzata che sorveglia i file specifici che devi sincronizzare


Avevo preso in considerazione il percorso dell'app personalizzato, ma se lo facessi scriverebbe un client Unison nativo anziché uno client dropbox (quindi rimarrà sul mio server).
Jason Viers,

0

Una ricerca di mercato ha rivelato aFileSync che afferma di sincronizzare i file tramite FTP e ha anche il supporto per la sincronizzazione automatica dei file. Dovrai eseguire un server FTP da solo.

C'è anche SK Sync , ma gli utenti hanno riportato risultati contrastanti con esso.

Ovviamente, prima di provare uno di questi programmi / app, esegui il backup dei tuoi file sia sul PC / server che sul tuo dispositivo Android.


aFileSync suona come se avesse tutti i comportamenti che voglio. Le recensioni sono un po 'spaventose e dovrò configurare un server FTP per vedere come va.
Jason Viers,

-1

Per sincronizzare i file da Android è la nuova versione della mia app BotSyncPlus . Quando hai scritto di BotSync, c'era solo una configurazione per l'upload o il download. Ma ora è disponibile una nuova versione di BotSyncPlus, dove è presente la configurazione multipla.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.