我从脚本调用 scp,并希望它提示运行脚本的用户输入密码。我该怎么做?
答案1
先写提示符,读取变量,然后使用变量与 scp 连接
echo -n "用户名:"
读取 USERNM
scp $USERNM@whatever
答案2
除了马特·西蒙斯之外,
read -p "用户名: " USERNM
阅读前的提示
读取-s-p“密码:”PASS
会读取密码,但是您无法将其传递给 SCP,所以它可能没用!
另外,
回声
阅读后,它会换行
例如:
读取 -p "用户名:" USERNM; echo
答案3
read -p "Username:" USER
scp -l $USER -oPubkeyAuthentication=no
...我认为。
如果不是,它将是 ssh/scp -o 选项之一,强制输入密码而不使用公钥。
答案4
只有在需要密码时(即没有可用的公钥认证),scp 才会要求输入密码,并认为它正在交互式会话中运行。如果有可用的公钥,这个问题就毫无意义了,因此您只需确保 scp 知道它正在交互式会话中运行。如果用户直接从其 shell 运行直接运行的脚本scp
,则应该没问题。