我可以让scp提示我input用户名和密码吗?

我从脚本调用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脚本,他们应该没问题。