如何在sftp模式下在shell脚本中添加confirm

时间:2013-10-17 07:02:18

标签: shell ssh sftp sh

我有一个shell脚本,它正在执行一些重命名和存档步骤。我添加了sftp命令来复制多个文件。但是当我尝试通过putty登录远程机器时,它会要求确认,例如您确定要继续连接(是/否)?。我需要输入是。但由于这是通过脚本完成的,我不知道该怎么做。下面是我正在使用的脚本

cd <File Source Location>
sftp user1@remoteserver
sftp> cd <target location to be copied>
sftp> mput *.gz 

quit

如何在执行sftp user1@remoteserver后在上面的代码中传递yes。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我认为你正试图解决错误的问题。

sftp要求您确认,因为它还不知道主机的密钥。因此,您需要将其添加到known_hosts文件中,如此

ssh-keyscan -H remoteserver >> ~/.ssh/known_hosts

我建议使用scp命令代替sftp,因为它会在一步中完成所有操作。

scp somewhere/*.gz user1@remoteserver:somewhere/else

如果由于某种原因你不想这样做。你可以考虑一个非常不安全的命令

sftp -o StrictHostKeyChecking=no user1@remoteserver

通过使用上面的命令你很容易受到中间人攻击,你已经收到警告。