Как запускать команды SSH из BASH, когда ключ RSA имеет пароль? - PullRequest
0 голосов
/ 26 мая 2018

Сценарий

У нас есть Ключ RSA с a password, который мы пытаемся использовать запускать команды SSH на удаленном сервере с помощью сценария BASH .Мы попытались передать password ключа RSA в команду SSHиспользуя программу sshpas.Например: ssh-test.sh:

#!/bin/bash
# sshpass -e uses the SSHPASS Environment Variable:
sshpass -e ssh -i ./deploy_key root@$132.62.16.142 pwd

Примечание : в настоящее время эта «примерная команда» просто пытается напечатать рабочий каталогна сервере для «тестирования», но идея в том, что он будет запускать другие более полезные команды через SSH.

Когда мы выполняем (выше) BASH-скрипт, он не выдает любые ошибки, просто "зависает" без вывода.Например: https://travis -ci.org / nelsonic / hello-world-node-http-server / builds / 384010921 # L521 image

Вопрос

В чем секрет использования ключа RSA с a password для SSH requests в сценарии BASH?( что я делаю не так ...? )

Дополнительный Контекст

Наш Квест заключается в использовании Трэвиса-CI (Online Continuous Integration Service) для развертывания нашего приложения на сервере Centos (или FreeBSD).Ключ SSH генерируется скриптом, который назначает случайный «надежный» пароль.Мы знаем , что возможно до " strip " пароль ключа RSA , однако это не вариант для нас.

Ключ RSA password зашифрован ( с использованием travis CLI ) и хранится в файле .travis.yml, который only Travis можетрасшифровать и сделать доступной как безопасную переменную среды $SSHPASS (, использованную выше в сценарии ).

Этот вопрос отличается от других вопросов SO тем, что мы используем ключ SSH (RSA) с a password, тогда как другие используют ключ без пароля.Мы хотим, чтобы использовал SSH (RSA) ключ с паролем (, который хранится в виде зашифрованной переменной среды SSHPASS) из соображений безопасности / соответствия.Мы смотрели на:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...