web-dev-qa-db-fra.com

sshpass: erreur de commande non trouvée

J'essaie d'automatiser le transfert de fichier ou FTP d'un serveur à l'autre.

#!/bin/bash
### In this model, the same filename is processed on each run.
### A timestamp is added to the result file and data file is copied to the archive or error folder with a timestamp after processing.

# Set current directory
cd `dirname "$0"`

# Set the environment variables
. ./Environment.sh $0

#######################################################################################################
# 
#######################################################################################################


FILE=/hcm/Inbound/file.csv

sshpass -p 'xyz' sftp -oBatchMode=no -b - -oStrictHostKeyChecking=no [email protected] <<_EOF_

cd /upload/

put $FILE

_EOF_

# Exit
exit $?

Lorsque j'exécute ce script shell, l'erreur suivante s'affiche dans PuTTY:

 -bash: sshpass: command not found

J'ai essayé d'utiliser la méthode ssh passwordless par ssh-keygen -t dsa et d'autres étapes, mais je ne peux pas accéder à PuTTY du deuxième serveur, ce qui m'empêche d'exécuter les étapes suivantes.

Aide aimablement

4
sreekem bose

vous devrez installer sshpass sur le serveur client sur lequel vous exécutez votre code, outil qui n’est pas installé par défaut sur la plupart des distributions Linux.

si vous êtes dans Ubuntu utilisez cette commande

apt-get install sshpass

sur centOS/redhat, utilisez cette install epel

wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh epel-release-6-8.noarch.rpm

installer sshpass

yum --enablerepo = epel -y installe sshpass

Merci

15
Hani

NON!!!! N'installez pas sshpass. Ce n'est pas le bon outil pour votre travail.

Il n'a pas été écrit pour votre cas d'utilisation, et si vous l'utilisez, votre script sera considérablement moins sécurisé qu'il ne peut l'être. Je devrais savoir de quoi je parle. Je l'ai écrit.

Au lieu de cela, exécutez votre serveur avec les informations de débogage et déterminez pourquoi vous n'avez pas réussi à configurer l'authentification par clé. Il est préférable d’utiliser sshpass de toutes les manières possibles.

3
Shachar Shemesh

Jetez un oeil à ce post Comment mettre la commande sshpass dans un script bash?

Si vous souhaitez écrire le script sshpass's ssh

export SSHPASS=password
sshpass -e ssh -oBatchMode=no user@Host
0
Alastair