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

我从脚本调用scp,并希望它提示用户运行脚本的密码。 我怎么做?

  • 如何将密码传递给在bash脚本中使用的scp命令?
  • 用sftpreplacescp
  • 通过缓慢或片状的networking链接进行可靠的文件传输
  • scponly工作,但没有chroot的主文件夹,用户仍然可以浏览整个服务器
  • scp user1 @ host1:somefile user2 @ host2:somefile
  • 为什么scp-scp工作,但没有标志没有scp
  • 5 Solutions collect form web for “我可以让scp提示我input用户名和密码吗?”

    首先编写提示,读取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脚本,他们应该没问题。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.