我从脚本调用scp,并希望它提示用户运行脚本的密码。 我怎么做?
首先编写提示,读取variables,然后使用variables与scp连接
回声-n“用户名:”
阅读USERNM
scp $ USERNM @任何
除了Matt Simmons之外,
读-p“用户名:”USERNM
在阅读之前提示
读-s -p“密码:”通过
会读取密码,但是,您无法将其传递给SCP,因此可能无用!
另外,放
回声
在你阅读之后,它会提出一个新的路线
例如:
读-p“用户名:”USERNM; 回声
read -p "Username:" USER scp -l $USER -oPubkeyAuthentication=no
…我认为。
如果没有,它将是ssh / scp -o选项之一强制密码input,不使用公钥。
另一种方法,如果您需要更复杂的交互式应用程序的处理,使用Expect(http://expect.nist.gov/)
如果需要的话,Scp只会要求input一个密码(即没有可用的公共密钥validation码),并认为它在一个交互式会话中运行。 如果有一个可用的公钥可用,这个问题是没有意义的,所以你只需要确保scp知道它在交互式会话中运行。 如果用户直接从他们的shell直接运行scp
脚本,他们应该没问题。