Я вызываю scp из скрипта и хочу, чтобы он запрашивал у пользователя, запускающего скрипт, свой пароль. Как я могу это сделать?
Сначала напишите приглашение, прочтите переменную, затем используйте переменную для подключения к scp
echo -n "имя пользователя:"
читать USERNM
scp $ USERNM @ что угодно
Помимо Мэтта Симмонса,
read -p "Username: " USERNM
подсказки перед чтением
read -s -p"Password: " PASS
будет читать пароль, ХОТЯ, вы не можете передать его в SCP, так что это, вероятно, бесполезно!
Также положите
echo
после прочтения, чтобы он ставил новую строку
например:
read -p "Username: " USERNM; echo
read -p "Username:" USER
scp -l $USER -oPubkeyAuthentication=no
...Думаю.
В противном случае это будет одна из опций ssh / scp -o для принудительного ввода пароля, а не использования открытых ключей.
альтернативный подход, если вам нужна более сложная обработка интерактивного приложения, которое вы создаете, - использовать Expect (http //expect.nist.gov/)
Scp будет запрашивать пароль только в том случае, если он ему нужен (т.е. нет доступной аутентификации с открытым ключом) и считает, что он работает в интерактивном сеансе. Если доступен рабочий открытый ключ, этот вопрос спорный, поэтому вам просто нужно убедиться, что scp знает, что он работает в интерактивном сеансе. Если пользователь напрямую запускает сценарий из своей оболочки, который напрямую запускается scp
, они должны быть в порядке.