Установка sshpass на экземпляре ec2 для amazon linux AMI

Я планирую автоматизировать миграцию сервера aws-rackspace. Я следую официальной документации по стойке ( https://github.com/cloudnull/InstanceSync/blob/master/rsrsyncLive.sh), которая использует rsync для миграции. Я изменил код, чтобы использовать sshpass для динамического предоставления пароля для входа в систему при установлении SSH-соединения с удаленным сервером.

sshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no username@IPAddress

Но я столкнулся с проблемой при установке пакета sshpass.

Debian based Distros - Installed Successfully
CentOS - Installed Successfully
Redhat - Package not found (yum list available | grep sshpass) 
Amazon Linux -  Package not found (yum list available | grep sshpass) 

Я даже попробовал 'yum update', а затем 'yum -y install sshpass', но это не сработало.

Спасибо,

6 ответов

Решение

Вам необходимо вручную загрузить исходный код sshpass, после этого

Extract it and cd into the directory
./configure
sudo make install

Примечание:: Если вы не нашли make, вы можете запустить следующую команду для установки make

sudo yum groupinstall "Development Tools"

На Amazon Linux 2 я делаю так

      sudo amazon-linux-extras install epel -y
sudo yum-config-manager --enable epel
sudo yum install sshpass

Я нашел этот ответ на другой странице переполнения стека, но он работал для меня, когда yum install sshpass возвращался

"Пакет sshpass недоступен"

при попытке установить на экземпляр AWS.

Команда:

yum --enablerepo=epel -y install sshpass

Я думал, что немного деталей могут помочь сделать это быстро.

Здесь вы можете скачать sshpass (поищите последние обновления): http://sourceforge.net/projects/sshpass/files/sshpass/1.05/ И со страницы получите URL для загрузки, как показано ниже

$ wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz/download # on your amazon instance, to download using command line / terminal; this will get you a file named "download"

$ mv download sshpass-1.05.tar.gz # note this is the name as in the URL above

$ gunzip sshpass-1.05.tar.gz
$ tar xvf sshpass-1.05.tar

$ cd sshpass-1.05

$ sudo yum groupinstall "Development Tools" # in case configure & make (next 2 commands) does not work, else dont run this command

$ sudo ./configure

$ sudo make install

$ sudo -s
# which sshpass #sudo -s and check if sshpass is in the path; on amazon RHEL, for me the root did not have /usr/local/bin in its path; so you may want to set the path appropriately (echo $PATH), or copy sshpass to one of the $PATH directories
  1. Скачать файл rpm
  2. # su -
  3. # rpm -ivh [перейти к вашему файлу rpm]

На Ansible Master (Amazon Linux) До этого:

linux1 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n",
    "unreachable": true
}

После исключения следующее:

sudo yum --enablerepo=epel -y install sshpass

Пинг сработал!

linux1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
Другие вопросы по тегам