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

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

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

相关内容