如何在UNIX中使用sftp传输文件

Rob*_*ave 5 sftp

我想将.png文件从我的计算机上的目录传输到远程服务器上的目录.

我必须使用SFTP来保护文件和传输模式.我已经有一个UNIX脚本(.ksh)文件来复制正常模式下的文件.如何在SFTP模式下实现传输?

Shi*_*nko 12

使用sftp而不是在.ksh脚本中使用的任何命令.请参阅sftp man以供参考.

您可能还想看看scp安全副本 - scp man.

编辑

sftp 主要用于交互式操作,您需要指定要连接的主机:

sftp example.com
Run Code Online (Sandbox Code Playgroud)

系统将提示您输入用户名和密码,交互式会话将开始...

虽然它可以在脚本中使用,scp但更容易使用:

scp /path/to/localfile user@host:/path/to/dest
Run Code Online (Sandbox Code Playgroud)

系统将提示您输入密码..

编辑2

二者scpsftpssh作为底层协议,看到

将它们设置为从脚本运行的最佳方法是使用密钥设置无密码身份验证.看到这个这个.我在我的服务器上广泛使用它..设置密钥后,您可以运行

scp -i private-key-file /path/to/local/file user@host:/path/to/remote

sftp -oIdentityFile=private-key-file -b batch-file user@host
Run Code Online (Sandbox Code Playgroud)

如果要使用密码进行身份验证,可以尝试使用该expect软件包.最简单的脚本可能如下所示:

#!/usr/bin/expect
spawn sftp -b batch-file user@host
expect "*?assword:*"
send "pasword\n"
interact
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅,内容.