Можно ли передавать пароли в сценарии оболочки?

Вы можете использовать перетаскивание Alt + Right.

7
задан 4 June 2011 в 00:15

40 ответов

Сценарий никогда не должен обрабатывать пароли. Имейте какое-либо приложение, чтобы пароль запрашивал его сам, или если это невозможно, найдите лучшее средство аутентификации с приложением. Пожалуйста, прочитайте http://mywiki.wooledge.org/BashFAQ/069

1
ответ дан 7 August 2018 в 21:21

К какой программе вы хотите передать пароль?

Скрипт ссылки работает для меня. Обратите внимание, что это не скрипт оболочки, а сценарий ожидания (требуется, чтобы пакет ожидал установки »). Использование expect - это распространенный способ автоматизации интерактивных программ на основе текста.

Неинтерактивные ssh логины часто выполняются с использованием аутентификации на основе ключа с пустой кодовой фразой.

Некоторые другие программы (например, sudo ) имеют опции для чтения пароля из stdin.

Предоставление пароля в качестве параметра командной строки часто является проблемой безопасности как и в большинстве систем, любой пользователь может видеть любые другие процессы пользователей, включая аргументы командной строки, используя простые инструменты, такие как ps .

1
ответ дан 7 August 2018 в 21:21

Существует способ хранения паролей в сценарии bash, но вы должны зашифровать скрипт, чтобы никто не мог его прочитать, или запускать на нем какой-либо отладчик, чтобы точно видеть, что он делает. Чтобы зашифровать скрипт bash / shell и выполнить его фактически, попробуйте скопировать и вставить его здесь

На приведенной выше странице вам нужно всего лишь отправить свой скрипт (вы может подать образец сценария сначала для вашего спокойствия). Для вас будет создан zip-файл. Щелкните правой кнопкой мыши ссылку для загрузки и скопируйте URL-адрес, который вы предоставили. Затем перейдите в свой блок UNIX и выполните следующие шаги.

Установка:

  wget link-to-the-zip-файл unzip the-new-download-zip  -file cd / tmp / KingLazySHIELD ./install.sh / var / tmp / KINGLAZY / SHIELDX- (ваш-script-name) / home / (ваше имя пользователя) -force  

Что указанная выше команда установки сделает для вас:

  1. Он установит зашифрованный скрипт в каталог / var / tmp / KINGLAZY / SHIELDX- (ваш-скрипт-имя) [ ! d2].
  2. Он поместит ссылку на этот зашифрованный скрипт в зависимости от того, какой каталог вы указали при замене / home / (ваше имя пользователя) - таким образом, он позволяет вы можете легко получить доступ к скрипту без необходимости вводить абсолютный путь.
  3. Обеспечивает, что NO ONE не может изменить сценарий. Любые попытки изменить зашифрованный скрипт сделают его неработоспособным ... пока эти попытки не будут остановлены или удалены .
  4. Обеспечивает абсолютно НИ ОДИН не может делать копии. Никто не может скопировать ваш сценарий в укромное место и попытаться связать его, чтобы увидеть, как он работает. Все копии сценария должны быть ссылками на исходное местоположение , которое вы указали во время установки.

ПРИМЕЧАНИЕ:

Я не считаю, что это работает для интерактивных скриптов , которые запрашивают у пользователя ответ. Значения должны быть жестко закодированы в сценарии. Шифрование гарантирует, что никто не сможет увидеть эти значения, поэтому вам не нужно беспокоиться об этом.

0
ответ дан 10 August 2018 в 09:39

Сценарий никогда не должен обрабатывать пароли. Имейте какое-либо приложение, чтобы пароль запрашивал его сам, или если это невозможно, найдите лучшее средство аутентификации с приложением. Пожалуйста, прочитайте http://mywiki.wooledge.org/BashFAQ/069

1
ответ дан 10 August 2018 в 09:39

вы можете просто сделать что-то вроде этого.

  # echo -e "password_here \npassword_here" |  su user  

источник

-1
ответ дан 10 August 2018 в 09:39

К какой программе вы хотите передать пароль?

Скрипт ссылки работает для меня. Обратите внимание, что это не скрипт оболочки, а сценарий ожидания (требуется, чтобы пакет ожидал установки »). Использование expect - это распространенный способ автоматизации интерактивных программ на основе текста.

Неинтерактивные ssh логины часто выполняются с использованием аутентификации на основе ключа с пустой кодовой фразой.

Некоторые другие программы (например, sudo ) имеют опции для чтения пароля из stdin.

Предоставление пароля в качестве параметра командной строки часто является проблемой безопасности как и в большинстве систем, любой пользователь может видеть любые другие процессы пользователей, включая аргументы командной строки, используя простые инструменты, такие как ps .

1
ответ дан 10 August 2018 в 09:39

Существует способ хранения паролей в сценарии bash, но вы должны зашифровать скрипт, чтобы никто не мог его прочитать, или запускать на нем какой-либо отладчик, чтобы точно видеть, что он делает. Чтобы зашифровать скрипт bash / shell и выполнить его фактически, попробуйте скопировать и вставить его здесь

На приведенной выше странице вам нужно всего лишь отправить свой скрипт (вы может подать образец сценария сначала для вашего спокойствия). Для вас будет создан zip-файл. Щелкните правой кнопкой мыши ссылку для загрузки и скопируйте URL-адрес, который вы предоставили. Затем перейдите в свой блок UNIX и выполните следующие шаги.

Установка:

  wget link-to-the-zip-файл unzip the-new-download-zip  -file cd / tmp / KingLazySHIELD ./install.sh / var / tmp / KINGLAZY / SHIELDX- (ваш-script-name) / home / (ваше имя пользователя) -force  

Что указанная выше команда установки сделает для вас:

  1. Он установит зашифрованный скрипт в каталог / var / tmp / KINGLAZY / SHIELDX- (ваш-скрипт-имя) [ ! d2].
  2. Он поместит ссылку на этот зашифрованный скрипт в зависимости от того, какой каталог вы указали при замене / home / (ваше имя пользователя) - таким образом, он позволяет вы можете легко получить доступ к скрипту без необходимости вводить абсолютный путь.
  3. Обеспечивает, что NO ONE не может изменить сценарий. Любые попытки изменить зашифрованный скрипт сделают его неработоспособным ... пока эти попытки не будут остановлены или удалены .
  4. Обеспечивает абсолютно НИ ОДИН не может делать копии. Никто не может скопировать ваш сценарий в укромное место и попытаться связать его, чтобы увидеть, как он работает. Все копии сценария должны быть ссылками на исходное местоположение , которое вы указали во время установки.

ПРИМЕЧАНИЕ:

Я не считаю, что это работает для интерактивных скриптов , которые запрашивают у пользователя ответ. Значения должны быть жестко закодированы в сценарии. Шифрование гарантирует, что никто не сможет увидеть эти значения, поэтому вам не нужно беспокоиться об этом.

0
ответ дан 13 August 2018 в 15:50

вы можете просто сделать что-то вроде этого.

  # echo -e "password_here \npassword_here" |  su user  

источник

-1
ответ дан 13 August 2018 в 15:50

Сценарий никогда не должен обрабатывать пароли. Имейте какое-либо приложение, чтобы пароль запрашивал его сам, или если это невозможно, найдите лучшее средство аутентификации с приложением. Пожалуйста, прочитайте http://mywiki.wooledge.org/BashFAQ/069

1
ответ дан 13 August 2018 в 15:50

К какой программе вы хотите передать пароль?

Скрипт ссылки работает для меня. Обратите внимание, что это не скрипт оболочки, а сценарий ожидания (требуется, чтобы пакет ожидал установки »). Использование expect - это распространенный способ автоматизации интерактивных программ на основе текста.

Неинтерактивные ssh логины часто выполняются с использованием аутентификации на основе ключа с пустой кодовой фразой.

Некоторые другие программы (например, sudo ) имеют опции для чтения пароля из stdin.

Предоставление пароля в качестве параметра командной строки часто является проблемой безопасности как и в большинстве систем, любой пользователь может видеть любые другие процессы пользователей, включая аргументы командной строки, используя простые инструменты, такие как ps .

1
ответ дан 13 August 2018 в 15:50
  • 1
    Я просто хочу передать пароль программе ssh. – karthick87 4 June 2011 в 00:59
  • 2
    Возможно, для вас работает ключевая проверка подлинности: используйте ssh-keygen , чтобы создать ключ аутентификации (просто нажмите Enter, если вас попросят передать пароль) и скопируйте его удаленному пользователю с помощью ssh-copy- id . Если для sshd включена ключевая аутентификация (по умолчанию), ssh не запрашивает пароль. – Florian Diesch 4 June 2011 в 02:13