【发布时间】:2017-04-23 11:12:53
【问题描述】:
我正在编写一个脚本来通过scp 在我的两台机器之间安全地传输数据。
但在脚本中,由于没有密码而显示错误。那么如何让我的 shell 脚本在执行scp 命令后向我询问密码呢?
这是我的csh 脚本。
# ssh shahk@sj-shahk
# ls -al
echo "Source Location of Remote Server - $1"
echo "Destination Location of Local Server - $2"
echo "File/Folder to be Transferred from Remote Server - $3"
echo "File Transfer Starts"
scp -rv $1/$3 <username>@<hostname>:$2
echo "File Transfer Completed"
# exit
现在我正在以下列方式将上述脚本与ssh 一起使用。
ssh <username>@<hostname> "<script name> <args>"
当我以上述方式使用时,执行scp命令时不提示输入密码。
【问题讨论】:
-
scp从脚本运行时应该要求输入密码,就像手动运行时一样。运行脚本时是否重定向输入? -
在我的情况下它不需要任何密码。实际上它只是终止命令。
-
即使您以交互方式使用它?您是否配置了私钥?
scp -v显示什么? -
不,如果我在 shell 命令行中使用
scp,那么它会要求输入密码。但如果该命令在脚本中,则不会。 -
程序在脚本中的运行方式并没有什么不同,除非脚本执行重定向输入之类的操作。发布您的脚本。