即使密码在脚本中,SFTP也会提示输入密码

时间:2013-05-04 03:26:48

标签: sftp

我正在尝试使用SFTP将文件从一台服务器传输到远程服务器。客户端尚未准备好进行密钥设置 我在这个与SFTP相关的论坛上经历了其他问题并尝试了所有问题。但是在我的情况下仍然不起作用。

我的剧本: -

#!/bin/sh
# sample automatic ftp script to dump a file
USER="username"
PASSWORD="password"
HOST="hostname"
sftp $USER@$HOST << EOF
$PASSOWRD
cd test_path
put test_file.txt
quit
EOF

3 个答案:

答案 0 :(得分:9)

你的脚本中有一个印刷错误 - 你正在编写$ PASSOWRD而不是$ PASSWORD,所以它替换了空字符串。

答案 1 :(得分:2)

您可以使用expect执行此操作。这很容易和简单;

#!/usr/bin/expect 
spawn sftp <userid>@<server> 
expect "password:" 
send "<password>\n" 
expect "sftp>" 
send "cd <remot dirctory>\r" 
expect "sftp>" 
send "mput * \r" 
expect "sftp>" 
send "quit \r"

答案 2 :(得分:1)

尝试以下步骤,

lftp -u $user,$passwd sftp://$host << --EOF--
cd $directory
put $srcfile
quit
--EOF--