Сценарий
У нас есть Ключ 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
Вопрос
В чем секрет использования ключа 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
) из соображений безопасности / соответствия.Мы смотрели на: