Назад | Перейти на главную страницу

Могу ли я заставить scp запрашивать у меня имя пользователя и пароль?

Я вызываю 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, они должны быть в порядке.