Sftp script per trasferire file in Linux con password
SFTP consente di trasferire in modo sicuro i file in Linux. Ma a volte potrebbe essere necessario trasferire automaticamente i file utilizzando SFTP. In questi casi, la richiesta di password può rappresentare un ostacolo. In questo articolo, vedremo come creare uno script SFTP per trasferire file in Linux, con password. Sarà necessario utilizzare una libreria di terze parti come portachiavi, sshpass o si aspettano che fornisce automaticamente la password SFTP, per semplificare la vostra vita. Per il nostro articolo, useremo SSHpass. Vedremo anche come impostare l’autenticazione della password senza prompt senza usare SSHpass, usando ssh-copy.
Che cosa è SSHpass
SSHPass è un semplice strumento da riga di comando che consente di fornire password per prompt dei comandi e script in modo da poter automatizzare le attività che richiedono l’autenticazione, senza interruzioni. Facilita l’autenticazione della password non interattiva.
Script Sftp per trasferire file in Linux con password
Ecco i passaggi per trasferire file in Linux con password
Imposta password SSH
Apri terminale ed esegui il seguente comando per impostare la password SSH. Sostituisci il tuo-password-qui con la tua password SSH.
export SSHPASS=your-password-here
Trasferire file in Linux
Eseguire il seguente comando per trasferire file in Linux. Sostituisci user con il tuo nome utente SFTP, remote-host con il tuo indirizzo host SFTP, / data con la posizione della cartella remota e your-file.accedere con il nome del file che si desidera trasferire.
sshpass -e sftp -oBatchMode=no -b - sftp-user@remote-host << ! cd /data put your-file.log bye!
È possibile aggiungere i due comandi precedenti al file di script di shell per ottenere lo script SFTP per trasferire i file utilizzando la password.
Modo alternativo
Puoi alternativamente usare la funzione ssh-copy per fare la stessa cosa. In questo approccio, è necessario creare una chiave pubblica per il client e aggiungere questa chiave pubblica sul server remoto. Una volta fatto ciò, il server remoto utilizzerà sempre la chiave pubblica e smetterà di richiedere la password.
Apri terminale ed esegui il seguente comando per creare una chiave pubblica per il tuo client.
ssh-keygen
Vi verrà richiesto 3 domande, basta premere il tasto invio per ogni prompt. Questo genererà la tua chiave pubblica.
Eseguire il seguente comando per copiare la chiave pubblica sul server remove SFTP. Sostituire remote-host con l’indirizzo IP host del server SFTP.
ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
Verrà richiesto di accedere/rifiutare la chiave dell’host remoto. Premi y yo accettalo. Successivamente, ti verrà chiesto di inserire la password del tuo server remoto. Immetterlo per aggiungere correttamente la chiave pubblica all’elenco delle chiavi pubbliche accettate del server remoto. Si sarà in grado di trovare in .file ssh / authorized_key.
D’ora in poi, non ti verrà richiesta la password durante l’utilizzo di scp, ssh o sftp.
In questo articolo, abbiamo esaminato due modi diversi per trasferire file utilizzando SFTP.
Leggere anche:
Come invertire la stringa in Python
Come connettersi al database PostgreSQL usando Python
Come rimuovere Snap in Ubuntu
Come selezionare record casuali in MySQL
Come cambiare ricorsivamente il proprietario della directory in Linux