在stackoverflow上也有类似的问题,但它们要么没有答案,要么使用某种语言(C#,Python,...)。我试图使用ssh在远程机器上执行命令,并将控制台输出回到本地机器。下面是我有问题的命令:在远程计算机上执行shell脚本中的命令并在本地计算机上获取输出
sshpass -p $password 'find /home/pi/Transmission_Downloads/ -type f \(-iname "*.mp4" -o -iname "*.mkv" -o -iname "*.avi" \) -newermt "2016-02-01"' [email protected]
当我尝试执行我的剧本里我得到“sshpass:无法运行命令:没有这样的文件或目录”错误。
我想实现的目标:从服务器获取下载的新文件列表(电影和电视节目),以便以后使用rsync从服务器上拉取它们。
有没有一种方法可以仅使用密码来实现此目的,还是我必须使用公钥/私钥来访问服务器?
我的本地机器使用的是Ubuntu 14.04(桌面),我的服务器正在运行Raspbian。
问题是我将不得不为每台计算机创建公钥/私钥把文件拉到。有没有办法使用密码来实现这个(例如sshpass)? –
做这件事的另一种方法可能是'expect',请参阅:[在bash脚本中使用expect来为SSH命令提供密码](http://stackoverflow.com/questions/4780893/use-expect-in-bash-脚本到提供密码到SSH命令)。你处理多少台电脑?对于5-10台计算机,设置SSH密钥将非常快速,其余部分非常简单。而且最重要的是SSH密钥比通过网络发送原始密码更安全。 –
它只是我,还是使用SSH密钥在auth期间添加了一个小的延迟(1〜3秒)? –