I'm calling scp from a script and want it to prompt the user running the script for their password. How do I do that?
|
feedback
|
|
Write the prompt first, read the variable, then use the variable to connect with scp echo -n "username:" scp $USERNM@whatever | |||
|
feedback
|
|
In addition to Matt Simmons, read -p "Username: " USERNM prompts before reading read -s -p"Password: " PASS would read a password, ALTHOUGH, you're not able to pass that to SCP, so it's probably not useful! Also, put echo after your read so that it puts a new line eg: read -p "Username: " USERNM; echo | |||
|
feedback
|
|
an alternative approach, in case you need more sophisticated handling of the interactive app you are spawning, is to use Expect ( http //expect.nist.gov/ ) | |||
|
feedback
|
|
Scp will only ask for a password if it needs one (ie no public key auth available) and thinks it's running in an interactive session. If there's a working public key available this question is moot, so you just need to make sure scp knows it's running in an interactive session. If the user directly runs a script from their shell which directly runs | |||
|
feedback
|
...I think. If not it will be one of the ssh/scp -o options to force password entry and not use public keys. | |||
|
feedback
|