AFAIK, команды ssh
или scp
не имеют/принимают параметр пароля. В противном случае я мог бы сохранить пароль в переменной оболочки и, вероятно, избавиться от подсказки ввода пароля. Если я напишу команду scp в своей оболочке script, она предложит пользователю ввести пароль. У меня несколько команд ssh и scp в моем script, и я не хочу, чтобы пользователь каждый раз вводил пароль. Я бы предпочел сохранить пароль в переменной оболочки в начале (запросив пароль один раз), а затем использовать его для каждого ssh или scp.
Я прочитал о "идентификаторе открытого ключа" в этом вопросе. Связано ли это с решением, которое я ищу?
Обновление
Я прочитал в Как использовать команду ssh в оболочке script?, почему небезопасно указывать пароли в командной строке. Использует ли expect
также пароль для хранения и видимый мир (используя ps aux
)? Это проблема безопасности при использовании expect
?
Дальнейшее объяснение
Для дальнейшего уточнения я пишу эту оболочку script для автоматизации резервного копирования кода и базы данных, загрузки кода, запуска необходимых запросов к базе данных, выполнения всех необходимых действий для выпуска новой версии LAMP project от системы разработчика до удаленного сервера в реальном времени. Моя оболочка script будет находиться внутри основной кодовой базы проекта в каждом экземпляре разработчика.
Требование
-
Я хочу, чтобы все разработчики (все могут работать из разных удаленных систем), зная пароль SSH/FTP, чтобы иметь возможность использовать оболочку, введя пароль ssh/ftp таким же образом только во время выполнения один раз. Я бы предпочел пароль для пароля ssh/ftp
Примечание.. Я не хочу, чтобы другие разработчики, которые не знают пароль SSH, могут использовать его (поэтому я предполагаю, что аутентификация с открытым ключом не будет работать, поскольку она хранит пароли в системах).
- Мне не нужно какое-либо решение командной строки, которое хранит пароль в каком-то журнале в системе и может быть видимым в мире с помощью ps aux или что-то в этом роде.
Открытие Баунти
Из всех ответов до сих пор и моих анализмов этих решений, похоже, что кроме аутентификации с открытым ключом все остальные небезопасны. Я еще не уверен, что использование expect
небезопасно. Я думаю, что это в противном случае правильное решение для меня. В этом случае я получаю команду не найденных ошибок, пытаясь сделать это, поскольку уже прокомментировал один из ответов.
От http://www.debianadmin.com/sshpass-non-interactive-ssh-password-authentication.html -
В первую очередь пользователи sshpass должны понимать, что sshs insistance только при получении пароля интерактивно не без оснований. Близко быть невозможно безопасно хранить пароль и пользователей sshpass следует рассмотреть вопрос о том, Аутентификация открытого ключа sshs обеспечивает тот же опыт конечного пользователя, с меньшим количеством хлопот и более безопасным.
Итак, невозможно ли безопасно запускать несколько команд ssh, scp, введя пароль ssh/ftp (если только один раз во время выполнения? Пожалуйста, снова прочтите раздел "Требования".
Кроме того, кто-нибудь может это объяснить -
В частности, люди, пишущие программы которые удовлетворяют сообщите вышеприведенные пункты) пароль программно рекомендуется использовать анонимная труба и пропускать трубы чтение конца sshpass с помощью -d вариант.
Означает ли это, что все возможно?