Использование значения переменной в качестве пароля для scp, ssh и т. д. вместо того, чтобы каждый раз запрашивать ввод пользователя

AFAIK, команды ssh или scp не имеют / принимают параметр пароля. В противном случае я мог бы сохранить пароль в переменной оболочки и, вероятно, избавиться от приглашения ввести пароль. Если я напишу команду scp в моем сценарии оболочки, она предложит пользователю ввести пароль. В моем скрипте несколько команд ssh и scp, и я не хочу, чтобы пользователь вводил пароль каждый раз. Я бы предпочел сначала сохранить пароль в переменной оболочки (запросив пароль один раз), а затем использовать его для каждого ssh или scp.

Я читал об «идентификации открытого ключа» в этом вопросе . Связано ли это с решением, которое я ищу?

Обновление
Я прочитал в Как использовать команду ssh в сценарии оболочки? почему небезопасно указывать пароли в командной строке. При использовании expect также сохраняется пароль и виден ли мир (при использовании ps aux )? Это проблема безопасности при использовании expect ?

Дальнейшее объяснение
Чтобы еще больше прояснить, я пишу этот сценарий оболочки для автоматизации резервного копирования кода и базы данных, загрузки кода, выполнения необходимых запросов к базе данных , сделайте все, что необходимо для выпуска новой версии проекта LAMP , от системы разработчика на удаленный рабочий сервер. Мой сценарий оболочки будет внутри основной кодовой базы проекта в каждом экземпляре разработчика.

Требование

  • Я хочу, чтобы все разработчики (все могут работать из разных удаленных систем), знающие пароль SSH / FTP, могли использовать оболочку, введя одинаковый пароль ssh / ftp только во время выполнения. Я бы предпочел, чтобы в качестве пароля использовался пароль ssh / ftp

    Примечание - Я не хочу, чтобы другие разработчики, которые не знают пароль SSH, могли его использовать (поэтому я предполагаю, что аутентификация с открытым ключом не будет работать потому что он хранит пароли в системах).

  • Мне не нужно какое-либо решение для командной строки, которое хранит пароль в каком-либо журнале в системе и может быть видимым для всего мира с помощью ps aux или чего-то еще. Из всех ответов на данный момент и моего анализа этих решений, похоже, что кроме аутентификации с открытым ключом все остальные небезопасны. Я еще не уверен, небезопасно ли использование expect . Думаю, это для меня правильное решение. В этом случае при попытке сделать это я получаю сообщение об ошибке «Команда не найдена», как уже было сказано в одном из ответов.

    Из http://www.debianadmin.com/sshpass-non-interactive-ssh- password-authentication.html -

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

    Итак, невозможно безопасно запустить несколько команд ssh, scp, введя пароль ssh / ftp (хотя бы один раз во время выполнения? Прочтите мой раздел требований еще раз.

    Кроме того, может ли кто-нибудь объяснить это -

    В частности, люди, пишущие программы это удовлетворение предназначено для сообщить указанные выше пункты) пароль программно рекомендуется использовать анонимная трубка и передать трубку конец чтения sshpass с помощью -d вариант.

    Означает ли это, что все возможно?

11
задан 12 revs 23 May 2017 в 11:54
поделиться