Connessione tra due truenas core via ssh senza password

tripla-m

Dabbler
Joined
Nov 14, 2021
Messages
11
Ciao a tutti,

ho due server, uno principale (lo chiamerò A) e uno di backup (lo chiamerò B), entrambi con truenas core ed entrambi sulla stessa rete locale.
Io sto cercando di eseguire, via ssh, un comando tar dal server B su una directory del server A e l'archivio che verrà creato sarà salvato nel server B. Il comando funziona correttamente però, giustamente, ogni volta che lo eseguo mi viene richiesta la password del server A (tutto questo viene eseguito con l'utente root in entrambi i server)

Io invece vorrei che la password, per questa specifica connessione non venga richiesta, cosicché possa essere programmata ed essere eseguita in automatico. Allora ho provato con ssh connection (System/ssh connection), che sembrava facesse al caso mio, ma dopo diversi tentativi nel configurarlo non sono riuscito a risolvere il mio problema. Più che altro ho difficoltà a trovare sufficiente documentazione su questa funzione con esempi esplicativi, l'uniche info che ho trovato sono nella documentazione ufficiale, ma è troppa ridotta all'osso.

Quindi chiedo a voi se utilizzando questa funzione può risolvere il mio problema e in caso fornirmi degli esempi o guide per impostarlo correttamente.

Grazie mille
 

glauco

Guru
Joined
Jan 30, 2017
Messages
526
Ciao, dovresti riuscire così:
Comandi da eseguire come root@B:
ssh-keygen > Invio > Invio
eval $(ssh-agent)
ssh-copy-id -i .ssh/id_rsa A > yes > password di root@a
ssh A (per testare che funzioni) > exit
ssh A tar zcvf - dir_su_A > file_compresso_su_b.tar.gz

Probabilmente quando eseguirai il comando ssh-keygen, ti dirà che già esiste una coppia di chiavi pubblica e privata al percorso standard, in tal caso chiama la coppia di chiavi con un nome diverso. E non impostare una passhphrase, altrimenti ti verrà chiesto di inserirla interattivamente.
Con il comando ssh-copy-id, root@B copia la sua chiave pubblica nel file .ssh/authorized_keys di root@A, affinché root@A si fidi e consenta l'accesso in SSH da parte di root@B.
Detto ciò, c'è qualche motivo particolare per fare un file tar? Di solito per copie di questo tipo, si usa rsync. Oppure, visto che sono due installazioni di TrueNAS Core, se i dati sono molti, forse è ancora meglio impostare un periodic replication task, anche se ciò implica capire la logica degli snapshot e della loro replica, non proprio intuitivissimi...

Edit: ho fatto qualche correzione, ma insomma, i comandi erano più o meno quelli, come hai notato!

Sono d'accordo sul fatto di utilizzare strumenti che si conoscono! :wink:
 
Last edited:

tripla-m

Dabbler
Joined
Nov 14, 2021
Messages
11
Ciao, dovresti riuscire così:
Comandi da eseguire come root@B:
ssh-keygen > Invio > Invio
eval $(ssh-agent)
ssh-copy-id -i .ssh/id_rsa truenas > yes > password di root@a
ssh truenas (per testare che funzioni) > exit
ssh truenas tar zcvf - dir_su_A > file_compresso_su_b.tar.gz

Probabilmente quando eseguirai il comando ssh-keygen, ti dirà che già esiste una coppia di chiavi pubblica e privata al percorso standard, in tal caso chiama la coppia di chiavi con un nome diverso. E non impostare una passhphrase, altrimenti ti verrà chiesto di inserirla interattivamente.
Con il comando ssh-copy-id, root@B copia la sua chiave pubblica nel file .ssh/known_hosts di root@A, affinché root@A si fidi e consenta l'accesso in SSH da parte di root@B.
Detto ciò, c'è qualche motivo particolare per fare un file tar? Di solito per copie di questo tipo, si usa rsync. Oppure, visto che sono due installazioni di TrueNAS Core, se i dati sono molti, forse è ancora meglio impostare un periodic replication task, anche se ciò implica capire la logica degli snapshot e della loro replica, non proprio intuitivissimi...
Ok perfetto è andato. Dovrò segnarmi questi comandi per il futuro.

Riguardo alla tua domanda sul perché faccio così è molto semplice: siccome non sono molto pratico, per evitare di fare errori nei backup, per me è più semplice prendere in blocco tutto quello che ho negli hard disk e inserirli in un file tar con giorno e ora della copia. Se devo ripristinare i dati, sposto il file tar che mi interessa e lo estraggo dentro gli hard disk.
Sono consapevole che rsync, o gli snapshot sono molto più efficienti nel eseguire questo lavoro, ma finché non mi è del tutto ben chiaro il loro funzionamento non li uso.
 
Top