sshpass: ошибка команды не найдена

Я пытаюсь автоматизировать передачу файлов или FTP с одного сервера на другой.

#!/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 $?

Когда я выполняю этот сценарий оболочки, я получаю следующую ошибку в замазке:

 -bash: sshpass: command not found

Я попытался использовать метод SSH без пароля ssh-keygen -t dsa и другие шаги, но я не могу получить доступ к замазке второго сервера, из-за которой я не могу выполнить следующие шаги.

Пожалуйста, помогите

3 ответа

Решение

Вам нужно будет установить sshpass на клиентском сервере, на котором вы запускаете код, в котором это средство не установлено по умолчанию в большинстве дистрибутивов Linux.

если вы находитесь в Ubuntu, используйте эту команду

apt-get установить sshpass

на CentOS/ RedHat использовать эту установку 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

установить sshpass

yum --enablerepo = epel -y установить sshpass

Спасибо

НЕТ!!!! Не устанавливайте sshpass. Это неправильный инструмент для вашей работы.

Он не был написан для вашего варианта использования, и если вы его используете, ваш сценарий будет значительно менее безопасным, чем может быть. Я должен знать, о чем я говорю. Я это написал.

Вместо этого запустите сервер с информацией отладки и выясните, почему вы не смогли настроить аутентификацию на основе ключей. Предпочтительнее использования sshpass всеми возможными способами.

Одно решение, которое я получил для CentOS 7:

  1. Щелкните ссылку

И rpm будет скачан.

  1. Перенесите этот rpm в свою систему Linux (вы можете использовать filezilla и т. Д.).
  2. Установите Rpm, используя: yum install <rpm file name>.

СДЕЛАННЫЙ

Посмотрите на этот пост. Как поместить команду sshpass в скрипт bash?

Если вы хотите написать скрипт sshpass's ssh

export SSHPASS=password
sshpass -e ssh -oBatchMode=no user@host
Другие вопросы по тегам