sshpass: commande introuvable
Je suis en train d'automatiser le transfert de fichiers 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 zys@192.abc.taleo.net <<_EOF_
cd /upload/
put $FILE
_EOF_
# Exit
exit $?
Quand je suis à l'exécution de ce script shell, j'obtiens l'erreur suivante dans putty :
-bash: sshpass: command not found
J'ai essayé d'utiliser le ssh sans mot de passe de la méthode par ssh-keygen -t dsa
et d'autres mesures, mais je ne peux pas accéder à mastic de la deuxième serveur grâce à laquelle je suis ne pas être en mesure d'exécuter les prochaines étapes.
Aide gentiment
- "Ne peut pas accéder à mastic de la deuxième serveur"? Pardon? Vous pouvez utiliser SSH sans mot de passe par le biais de plusieurs tronçons par le mode de chargement de votre clé dans un agent (en aparté, les clés RSA sont privilégiées par rapport APD) et de l'activation de l'agent de transfert; vous n'avez pas besoin d'avoir une clé privée disponible sur votre rebond hôtes.
- En aparté,
exit $?
est complètement redondant:exit
passe par le statut de sortie de l', immédiatement avant la commande par défaut. Aussi, il vous manque un peu juste de citer ici -- qui shellcheck.net identifier.
Vous devez vous connecter pour publier un commentaire.
vous aurez besoin d'installer sshpass sur le serveur client vous exécutez votre code dans lequel est un outil qui n'est pas installé par défaut sur la plupart des distributions Linux
si vous êtes sur Ubuntu, utilisez cette commande
sur centOS/redhat utiliser cette
installer epel
installer sshpass
Grâce
PAS!!!! Ne pas installer sshpass. C'est le mauvais outil pour votre travail.
Il n'a pas été écrit pour votre cas d'utilisation, et si vous ne l'utilisez, votre script sera beaucoup moins sûr qu'il peut être. Je devrais savoir de quoi je parle. Je l'ai écrit.
Au lieu de cela, lancez votre serveur avec les informations de débogage et de comprendre pourquoi vous n'avez pas à configurer l'authentification basée sur une clé. Il est préférable à l'utilisation
sshpass
dans toutes les manières possibles.-vv
pour voir ce que les méthodes d'authentification, il essaie, et si tout le reste échoue, vous demandez-vous pourquoi la clé publique ne fonctionne pas (en supposant aucun des 7,283,093 autres fois, les gens ont demandé que la question n'a pas vous aider). Vous n'utilisez passshpass
où la clé publique d'authentification est possible.Prendre un coup d'oeil à ce post
Comment mettre sshpass de commande à l'intérieur d'un script bash?
Si vous souhaitez script
sshpass's ssh