sshpass: Befehl nicht gefunden " - Fehler
Ich bin versucht, zu automatisieren, das file transfer oder FTP von einem server auf den anderen.
#!/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 $?
Wenn ich die Ausführung dieses shell-Skript, das ich erhalte die folgende Fehlermeldung in putty :
-bash: sshpass: command not found
Habe ich versucht mit dem ssh ohne Passwort-Methode von ssh-keygen -t dsa
und andere Schritte, aber ich kann nicht auf putty von dem zweiten server wegen denen bin ich nicht in der Lage zu führen Sie die nächsten Schritte.
Bitte helfen
- "Kein Zugriff auf putty von dem zweiten server"? Hä? Sie können ohne Passwort SSH über mehrere Stationen durch das laden Sie Ihre Schlüssel in einem Agenten (als beiseite, RSA-Schlüssel sind am günstigsten über DSA) und das agent-forwarding; Sie brauchen nicht, um tatsächlich besitzen einen privaten Schlüssel auf Ihrem bounce-hosts.
- Nebenbei
exit $?
ist völlig überflüssig:exit
geht durch den exit-status des unmittelbar vor dem Befehl standardmäßig. Auch Ihnen fehlt ein gutes Stück von hier zitiert -- was shellcheck.net identifizieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
müssen Sie sshpass installieren auf dem client-server, mit dem Sie Ihren code ausführen, in denen ist ein Werkzeug, das nicht standardmäßig installiert auf den meisten Linux-Distribution
wenn Sie in Ubuntu verwenden Sie diesen Befehl,
auf centOS/redhat verwenden Sie diese
install epel
install sshpass
Dank
NEIN!!!!!! Don ' T install sshpass. Es ist das falsche Werkzeug für den job.
Es wurde nicht geschrieben für Ihren Fall, und wenn Sie verwenden Sie es, Ihr Skript wird deutlich weniger sicher, als es sein kann. Ich sollte wissen, von was ich Rede. Ich schrieb es.
Stattdessen führen Sie Ihre server mit debug-info und herausfinden, warum Sie nicht zu set-up key basierte Authentifizierung. Es ist vorzuziehen, mit
sshpass
in jeder möglichen Weise.-vv
um zu sehen, welche Authentifizierungs-Methoden versucht, und wenn alle Stricke reißen, Fragen Sie, warum public-key nicht funktioniert (vorausgesetzt, keiner der 7,283,093 andere mal Leute gefragt, die Frage nicht weiterhelfen konnte). Verwenden Sie nichtsshpass
wo public-key-auth ist möglich.Werfen Sie einen Blick auf dieser post
Wie sshpass-Befehl innerhalb eines bash-Skriptes?
Wenn Sie möchten, um Skript
sshpass's ssh