1

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

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

quit

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

任何帮助深表感谢。

4

1 回答 1

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

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

于 2013-10-17T07:56:55.947 回答