GNU/Linux >> Linux Esercitazione >  >> Linux

Nome utente e password nella riga di comando con sshfs

Convogliare lo 'sshfs password' con <<< a -o password_stdin funziona su bash:

sshfs -o password_stdin [email protected]_ip:/home /mnt/backup <<< 'sshfs password'

Secondo il manuale, c'è un'opzione -o password_stdin che potrebbe consentire di leggere la password dall'input standard, che probabilmente può essere un reindirizzamento. Non l'ho mai usato, quindi sto ipotizzando.

Detto questo, sconsiglio vivamente una soluzione del genere che è intrinsecamente insicura.

ssh funziona molto bene con un sistema di chiavi private/pubbliche. È semplice e sicuro. Non è necessario inserire una password o scriverla in chiaro in uno script di shell. Basta spingere la tua chiave pubblica sul server e puoi connetterti immediatamente.


-o password_stdin non sembrano funzionare su tutti i sistemi, ad esempio freeBSD. eccetera.

Puoi anche usare expect Interprete, dovrebbe funzionare con sshfs e dovrebbe funzionare.

Un'altra soluzione sarebbe sshpass , ad esempio, diciamo che stai eseguendo il backup della directory /var/www

Backup:

name=$(date '+%y-%m-%d')
mkdir /backup/$name && tar -czvf /backup/$name/"$name.tar.gz" /var/www

caricamento del file di backup sul server di backup

sshpass -p "your_password" scp -r [email protected]_ip:/home/ /backup/$name

Quindi caricherà la directory con il backup di oggi

Ma tuttavia, come è stato detto più in alto, il modo migliore (sicuro e semplice) sarebbe usare la coppia di chiavi ssh
L'unico inconveniente sarebbe che devi eseguire il processo di generazione della chiave una volta su ogni server che devi accoppiare, ma è meglio che mantenere una password in formato di testo normale su tutti i server di cui desideri eseguire il backup :),

Generare una coppia di chiavi nel modo corretto

  • Sul server locale

    ssh-keygen -t rsa
    
  • Sul server remoto

    ssh [email protected]_servers_ip "mkdir -p .ssh"
    
  • Caricamento delle chiavi pubbliche generate sul server remoto

    cat ~/.ssh/id_rsa.pub | ssh [email protected]_servers_ip "cat >> ~/.ssh/authorized_keys"
    
  • Imposta le autorizzazioni sul server remoto

    ssh [email protected]_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
    
  • Accedi

    ssh [email protected]_servers_ip
    
  • Abilitazione del protocollo SSH v2

    decommenta "Protocollo 2" in /etc/ssh/sshd_config

  • abilitare l'autorizzazione della chiave pubblica in sshd

    rimuovere il commento da "PubkeyAuthentication yes" in /etc/ssh/sshd_config

  • Se StrictModes è impostato su yes in /etc/ssh/sshd_config allora

    restorecon -Rv ~/.ssh
    

Linux
  1. Automazione password SSH in Linux con sshpass

  2. Oring con True in un comando su Ssh?

  3. Come disabilitare l'accesso SSH con password

  4. Invia la posta dalla riga di comando con un server smtp esterno su Linux

  5. Come installare e utilizzare Mosh Command Line Tool Linux

Gestisci gli account locali con Useradd e Usermod Command

Che cos'è il comando SSH e come utilizzare SSH per connettersi al server remoto

Come passare la password al comando SSH in Linux

Tunneling e proxy SSH

Come monitorare l'integrità del server Linux con gli strumenti della riga di comando

Nozioni di base sulla riga di comando di Linux:lavorare con file e directory