twk Asked: 2009-05-29 12:28:14 +0800 CST2009-05-29 12:28:14 +0800 CST 2009-05-29 12:28:14 +0800 CST 我可以让 scp 提示我输入用户名和密码吗? 772 我正在从脚本调用 scp 并希望它提示运行脚本的用户输入密码。我怎么做? scp 5 个回答 Voted Matt Simmons 2009-05-29T12:31:23+08:002009-05-29T12:31:23+08:00 先写提示,读取变量,然后用变量与scp连接 echo -n "用户名:" 读取 USERNM scp $USERNM@whatever user4767 2009-05-29T12:37:28+08:002009-05-29T12:37:28+08:00 除了马特·西蒙斯, 读取 -p "用户名:" USERNM 阅读前的提示 读取 -s -p"密码:" PASS 会读取密码,尽管如此,你无法将它传递给 SCP,所以它可能没用! 另外,放 回声 在您阅读之后,它会换行 例如: 读取 -p "用户名:" USERNM; 回声 Jason Tan 2009-05-30T09:16:47+08:002009-05-30T09:16:47+08:00 read -p "Username:" USER scp -l $USER -oPubkeyAuthentication=no ...我认为。 如果不是,它将是 ssh/scp -o 选项之一,用于强制输入密码而不使用公钥。 pdxpatzer 2009-05-29T17:15:16+08:002009-05-29T17:15:16+08:00 如果您需要对正在生成的交互式应用程序进行更复杂的处理,另一种方法是使用 Expect ( http://expect.nist.gov/ ) Alex J 2009-05-29T18:11:17+08:002009-05-29T18:11:17+08:00 如果 Scp 需要密码(即没有可用的公钥身份验证)并认为它在交互式会话中运行,它只会要求输入密码。如果有可用的有效公钥,这个问题没有实际意义,所以你只需要确保 scp 知道它在交互式会话中运行。如果用户直接从他们的 shell 直接运行脚本scp,他们应该没问题。
先写提示,读取变量,然后用变量与scp连接
echo -n "用户名:"
读取 USERNM
scp $USERNM@whatever
除了马特·西蒙斯,
阅读前的提示
会读取密码,尽管如此,你无法将它传递给 SCP,所以它可能没用!
另外,放
在您阅读之后,它会换行
例如:
...我认为。
如果不是,它将是 ssh/scp -o 选项之一,用于强制输入密码而不使用公钥。
如果您需要对正在生成的交互式应用程序进行更复杂的处理,另一种方法是使用 Expect ( http://expect.nist.gov/ )
如果 Scp 需要密码(即没有可用的公钥身份验证)并认为它在交互式会话中运行,它只会要求输入密码。如果有可用的有效公钥,这个问题没有实际意义,所以你只需要确保 scp 知道它在交互式会话中运行。如果用户直接从他们的 shell 直接运行脚本
scp
,他们应该没问题。