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

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

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

40 ответов

«Ввод паролей», скорее всего, означает ввод данных без видимости для пользователя.

(предложенный geirha) При использовании bash вы можете использовать опцию -s для предотвращения ввода символов из :

read -p "Password please: " -s pass

Альтернативно, измените поведение терминала, чтобы скрыть введенные символы с помощью stty -echo (отключить echo). После чтения пароля с встроенной оболочкой read в переменную (в приведенном ниже примере $pass) включите ее снова с помощью stty echo. Поскольку новая строка из Enter скрыта, вам нужно напечатать новую строку, чтобы получить будущий вывод в новой строке.

stty -echo read -p "Password please: " pass stty echo printf '\n'

read и printf - встроенные оболочки. stty предоставляется пакетом coreutils, который установлен по умолчанию. Это означает, что этот фрагмент очень портативен.

Примечание: параметр -p не является стандартным, но из bash. Если вам нужно отобразить приглашение в других оболочках, используйте:

printf "Password please: " stty -echo read pass stty echo printf '\n'

Ссылки:

Ручная страница stty Страница руководства bash
9
ответ дан 25 July 2018 в 21:47
  • 1
    Я просто хочу дать пароль root удаленной системы в скрипте. Возможно ли это в вашем случае? – karthick87 4 June 2011 в 00:58
  • 2
    @ karthick87: нет, этот скрипт просто захватывает данные, которые пользователь вводит в интерактивном режиме. Если вы хотите поместить корневые пароли в сценарии, почему бы вам не подумать о входах с ключами? – Lekensteyn 4 June 2011 в 01:23
  • 3
    Чтение Bash также имеет возможность отключить эхо во время чтения в строке. См. [F1]. – geirha 5 June 2011 в 17:08
  • 4
    В zsh это достигается через read -s 'pw?Prompt text', где pw - это переменная, в которой будет помещен пароль, а -s - это флаг, чтобы скрыть ввод. – baldrs 20 November 2013 в 19:34

«Ввод паролей», скорее всего, означает ввод данных без видимости для пользователя.

(предложенный geirha) При использовании bash вы можете использовать опцию -s для предотвращения ввода символов из :

read -p "Password please: " -s pass

Альтернативно, измените поведение терминала, чтобы скрыть введенные символы с помощью stty -echo (отключить echo). После чтения пароля с встроенной оболочкой read в переменную (в приведенном ниже примере $pass) включите ее снова с помощью stty echo. Поскольку новая строка из Enter скрыта, вам нужно напечатать новую строку, чтобы получить будущий вывод в новой строке.

stty -echo read -p "Password please: " pass stty echo printf '\n'

read и printf - встроенные оболочки. stty предоставляется пакетом coreutils, который установлен по умолчанию. Это означает, что этот фрагмент очень портативен.

Примечание: параметр -p не является стандартным, но из bash. Если вам нужно отобразить приглашение в других оболочках, используйте:

printf "Password please: " stty -echo read pass stty echo printf '\n'

Ссылки:

Ручная страница stty Страница руководства bash
9
ответ дан 26 July 2018 в 16:49

«Ввод паролей», скорее всего, означает ввод данных без видимости для пользователя.

(предложенный geirha) При использовании bash вы можете использовать опцию -s для предотвращения ввода символов из :

read -p "Password please: " -s pass

Альтернативно, измените поведение терминала, чтобы скрыть введенные символы с помощью stty -echo (отключить echo). После чтения пароля с встроенной оболочкой read в переменную (в приведенном ниже примере $pass) включите ее снова с помощью stty echo. Поскольку новая строка из Enter скрыта, вам нужно напечатать новую строку, чтобы получить будущий вывод в новой строке.

stty -echo read -p "Password please: " pass stty echo printf '\n'

read и printf - встроенные оболочки. stty предоставляется пакетом coreutils, который установлен по умолчанию. Это означает, что этот фрагмент очень портативен.

Примечание: параметр -p не является стандартным, но из bash. Если вам нужно отобразить приглашение в других оболочках, используйте:

printf "Password please: " stty -echo read pass stty echo printf '\n'

Ссылки:

Ручная страница stty Страница руководства bash
9
ответ дан 2 August 2018 в 03:23

«Ввод паролей», скорее всего, означает ввод данных без видимости для пользователя.

(предложенный geirha) При использовании bash вы можете использовать опцию -s для предотвращения ввода символов из :

read -p "Password please: " -s pass

Альтернативно, измените поведение терминала, чтобы скрыть введенные символы с помощью stty -echo (отключить echo). После чтения пароля с встроенной оболочкой read в переменную (в приведенном ниже примере $pass) включите ее снова с помощью stty echo. Поскольку новая строка из Enter скрыта, вам нужно напечатать новую строку, чтобы получить будущий вывод в новой строке.

stty -echo read -p "Password please: " pass stty echo printf '\n'

read и printf - встроенные оболочки. stty предоставляется пакетом coreutils, который установлен по умолчанию. Это означает, что этот фрагмент очень портативен.

Примечание: параметр -p не является стандартным, но из bash. Если вам нужно отобразить приглашение в других оболочках, используйте:

printf "Password please: " stty -echo read pass stty echo printf '\n'

Ссылки:

Ручная страница stty Страница руководства bash
9
ответ дан 4 August 2018 в 19:20

«Ввод паролей», скорее всего, означает ввод данных без видимости для пользователя.

(предложенный geirha) При использовании bash вы можете использовать опцию -s для предотвращения ввода символов из :

read -p "Password please: " -s pass

Альтернативно, измените поведение терминала, чтобы скрыть введенные символы с помощью stty -echo (отключить echo). После чтения пароля с встроенной оболочкой read в переменную (в приведенном ниже примере $pass) включите ее снова с помощью stty echo. Поскольку новая строка из Enter скрыта, вам нужно напечатать новую строку, чтобы получить будущий вывод в новой строке.

stty -echo read -p "Password please: " pass stty echo printf '\n'

read и printf - встроенные оболочки. stty предоставляется пакетом coreutils, который установлен по умолчанию. Это означает, что этот фрагмент очень портативен.

Примечание: параметр -p не является стандартным, но из bash. Если вам нужно отобразить приглашение в других оболочках, используйте:

printf "Password please: " stty -echo read pass stty echo printf '\n'

Ссылки:

Ручная страница stty Страница руководства bash
9
ответ дан 6 August 2018 в 03:32

«Ввод паролей», вероятно, означает ввод данных без видимых для пользователя.

(предложенный geirha) При использовании bash вы можете использовать -s чтобы предотвратить отображение типизированных символов:

  read -p «Пароль, пожалуйста:» -s pass  

Альтернативно, измените поведение терминала на скрыть типизированные символы с помощью stty -echo (отключить echo ). После прочтения пароля с встроенной оболочкой прочитайте в переменной (в приведенном ниже примере $ pass ) включите ее снова с помощью stty echo . Поскольку новая строка из Enter скрыта, вам нужно напечатать новую строку, чтобы получить будущий вывод на новой строке.

  stty -echo read -p «Пароль, пожалуйста:« pass stty echo  printf '\n'  

читать и printf - это встроенные оболочки. stty предоставляется пакетом coreutils , который установлен по умолчанию. Это означает, что этот фрагмент очень портативен.

Примечание: параметр -p не является стандартным, но из bash . Если вам нужно отобразить приглашение в других оболочках, используйте:

  printf «Пароль, пожалуйста:« stty -echo read pass stty echo printf '\n'  

Ссылки:

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

«Ввод паролей», вероятно, означает ввод данных без видимых для пользователя.

(предложенный geirha) При использовании bash вы можете использовать -s чтобы предотвратить отображение типизированных символов:

  read -p «Пароль, пожалуйста:» -s pass  

Альтернативно, измените поведение терминала на скрыть типизированные символы с помощью stty -echo (отключить echo ). После прочтения пароля с встроенной оболочкой прочитайте в переменной (в приведенном ниже примере $ pass ) включите ее снова с помощью stty echo . Поскольку новая строка из Enter скрыта, вам нужно напечатать новую строку, чтобы получить будущий вывод на новой строке.

  stty -echo read -p «Пароль, пожалуйста:« pass stty echo  printf '\n'  

читать и printf - это встроенные оболочки. stty предоставляется пакетом coreutils , который установлен по умолчанию. Это означает, что этот фрагмент очень портативен.

Примечание: параметр -p не является стандартным, но из bash . Если вам нужно отобразить приглашение в других оболочках, используйте:

  printf «Пароль, пожалуйста:« stty -echo read pass stty echo printf '\n'  

Ссылки:

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

«Ввод паролей», вероятно, означает ввод данных без видимых для пользователя.

(предложенный geirha) При использовании bash вы можете использовать -s чтобы предотвратить отображение типизированных символов:

  read -p «Пароль, пожалуйста:» -s pass  

Альтернативно, измените поведение терминала на скрыть типизированные символы с помощью stty -echo (отключить echo ). После прочтения пароля с встроенной оболочкой прочитайте в переменной (в приведенном ниже примере $ pass ) включите ее снова с помощью stty echo . Поскольку новая строка из Enter скрыта, вам нужно напечатать новую строку, чтобы получить будущий вывод на новой строке.

  stty -echo read -p «Пароль, пожалуйста:« pass stty echo  printf '\n'  

читать и printf - это встроенные оболочки. stty предоставляется пакетом coreutils , который установлен по умолчанию. Это означает, что этот фрагмент очень портативен.

Примечание: параметр -p не является стандартным, но из bash . Если вам нужно отобразить приглашение в других оболочках, используйте:

  printf «Пароль, пожалуйста:« stty -echo read pass stty echo printf '\n'  

Ссылки:

9
ответ дан 13 August 2018 в 15:50
  • 1
    Я просто хочу дать пароль root удаленной системы в скрипте. Возможно ли это в вашем случае? – karthick87 4 June 2011 в 00:58
  • 2
    @ karthick87: нет, этот скрипт просто захватывает данные, которые пользователь вводит в интерактивном режиме. Если вы хотите поместить корневые пароли в сценарии, почему бы вам не подумать о входах с ключами? – Lekensteyn 4 June 2011 в 01:23
  • 3
    Чтение Bash также имеет возможность отключить эхо во время чтения в строке. См. [D0] help '\read' . – geirha 5 June 2011 в 17:08
  • 4
    В zsh это достигается через read -s 'pw? Запрос текста' , где pw - это переменная, в которой будет помещен пароль, и -s - это флаг для скрытия ввода. – baldrs 20 November 2013 в 19:34

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

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

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

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

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

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

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

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

source

-1
ответ дан 25 July 2018 в 21:47

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

1
ответ дан 25 July 2018 в 21:47

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

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

Установка:

wget link-to-the-zip-file unzip the-newly-downloaded-zip-file cd /tmp/KingLazySHIELD ./install.sh /var/tmp/KINGLAZY/SHIELDX-(your-script-name) /home/(your-username) -force

Установка:

ll установить зашифрованный скрипт в каталог /var/tmp/KINGLAZY/SHIELDX-(your-script-name). Он поместит ссылку на этот зашифрованный скрипт в зависимости от того, какой каталог вы указали при замене /home/(your-username) - таким образом, он позволяет вам легко получить доступ к скрипту без необходимости вводить абсолютный путь. Гарантирует, что NO ONE не может изменить сценарий. Любые попытки изменить зашифрованный скрипт окажут его неработоспособным ... пока эти попытки не будут остановлены или удалены. Обеспечивает абсолютно НИКАКИЕ НИКАКИЕ НИКАКИЕ не может сделать его копии. Никто не может скопировать ваш сценарий в укромное место и попытаться связать его, чтобы увидеть, как он работает. Все копии сценария должны быть ссылками на исходное местоположение, которое вы указали во время установки.

ПРИМЕЧАНИЕ:

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

0
ответ дан 25 July 2018 в 21:47

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

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

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

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

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

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

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

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

source

-1
ответ дан 26 July 2018 в 16:49

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

1
ответ дан 26 July 2018 в 16:49

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

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

Установка:

wget link-to-the-zip-file unzip the-newly-downloaded-zip-file cd /tmp/KingLazySHIELD ./install.sh /var/tmp/KINGLAZY/SHIELDX-(your-script-name) /home/(your-username) -force

Установка:

ll установить зашифрованный скрипт в каталог /var/tmp/KINGLAZY/SHIELDX-(your-script-name). Он поместит ссылку на этот зашифрованный скрипт в зависимости от того, какой каталог вы указали при замене /home/(your-username) - таким образом, он позволяет вам легко получить доступ к скрипту без необходимости вводить абсолютный путь. Гарантирует, что NO ONE не может изменить сценарий. Любые попытки изменить зашифрованный скрипт окажут его неработоспособным ... пока эти попытки не будут остановлены или удалены. Обеспечивает абсолютно НИКАКИЕ НИКАКИЕ НИКАКИЕ не может сделать его копии. Никто не может скопировать ваш сценарий в укромное место и попытаться связать его, чтобы увидеть, как он работает. Все копии сценария должны быть ссылками на исходное местоположение, которое вы указали во время установки.

ПРИМЕЧАНИЕ:

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

0
ответ дан 26 July 2018 в 16:49

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

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

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

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

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

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

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

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

source

-1
ответ дан 2 August 2018 в 03:23

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

1
ответ дан 2 August 2018 в 03:23

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

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

Установка:

wget link-to-the-zip-file unzip the-newly-downloaded-zip-file cd /tmp/KingLazySHIELD ./install.sh /var/tmp/KINGLAZY/SHIELDX-(your-script-name) /home/(your-username) -force

Установка:

ll установить зашифрованный скрипт в каталог /var/tmp/KINGLAZY/SHIELDX-(your-script-name). Он поместит ссылку на этот зашифрованный скрипт в зависимости от того, какой каталог вы указали при замене /home/(your-username) - таким образом, он позволяет вам легко получить доступ к скрипту без необходимости вводить абсолютный путь. Гарантирует, что NO ONE не может изменить сценарий. Любые попытки изменить зашифрованный скрипт окажут его неработоспособным ... пока эти попытки не будут остановлены или удалены. Обеспечивает абсолютно НИКАКИЕ НИКАКИЕ НИКАКИЕ не может сделать его копии. Никто не может скопировать ваш сценарий в укромное место и попытаться связать его, чтобы увидеть, как он работает. Все копии сценария должны быть ссылками на исходное местоположение, которое вы указали во время установки.

ПРИМЕЧАНИЕ:

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

0
ответ дан 2 August 2018 в 03:23

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

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

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

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

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

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

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

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

source

-1
ответ дан 4 August 2018 в 19:20

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

1
ответ дан 4 August 2018 в 19:20

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

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

Установка:

wget link-to-the-zip-file unzip the-newly-downloaded-zip-file cd /tmp/KingLazySHIELD ./install.sh /var/tmp/KINGLAZY/SHIELDX-(your-script-name) /home/(your-username) -force

Установка:

ll установить зашифрованный скрипт в каталог /var/tmp/KINGLAZY/SHIELDX-(your-script-name). Он поместит ссылку на этот зашифрованный скрипт в зависимости от того, какой каталог вы указали при замене /home/(your-username) - таким образом, он позволяет вам легко получить доступ к скрипту без необходимости вводить абсолютный путь. Гарантирует, что NO ONE не может изменить сценарий. Любые попытки изменить зашифрованный скрипт окажут его неработоспособным ... пока эти попытки не будут остановлены или удалены. Обеспечивает абсолютно НИКАКИЕ НИКАКИЕ НИКАКИЕ не может сделать его копии. Никто не может скопировать ваш сценарий в укромное место и попытаться связать его, чтобы увидеть, как он работает. Все копии сценария должны быть ссылками на исходное местоположение, которое вы указали во время установки.

ПРИМЕЧАНИЕ:

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

0
ответ дан 4 August 2018 в 19:20

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

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

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

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

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

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

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

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

source

-1
ответ дан 6 August 2018 в 03:32

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

1
ответ дан 6 August 2018 в 03:32

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

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

Установка:

wget link-to-the-zip-file unzip the-newly-downloaded-zip-file cd /tmp/KingLazySHIELD ./install.sh /var/tmp/KINGLAZY/SHIELDX-(your-script-name) /home/(your-username) -force

Установка:

ll установить зашифрованный скрипт в каталог /var/tmp/KINGLAZY/SHIELDX-(your-script-name). Он поместит ссылку на этот зашифрованный скрипт в зависимости от того, какой каталог вы указали при замене /home/(your-username) - таким образом, он позволяет вам легко получить доступ к скрипту без необходимости вводить абсолютный путь. Гарантирует, что NO ONE не может изменить сценарий. Любые попытки изменить зашифрованный скрипт окажут его неработоспособным ... пока эти попытки не будут остановлены или удалены. Обеспечивает абсолютно НИКАКИЕ НИКАКИЕ НИКАКИЕ не может сделать его копии. Никто не может скопировать ваш сценарий в укромное место и попытаться связать его, чтобы увидеть, как он работает. Все копии сценария должны быть ссылками на исходное местоположение, которое вы указали во время установки.

ПРИМЕЧАНИЕ:

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

0
ответ дан 6 August 2018 в 03:32

Существует способ хранения паролей в сценарии 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
ответ дан 7 August 2018 в 21:21

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

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

источник

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

Другие вопросы по тегам:

Похожие вопросы: