带密码的 SFTP 连接问题
SFTP connection issue with password
我是运行这个脚本,用于在本地复制模式文件,但它要求输入密码,甚至传递硬编码值。
脚本:
PASSWORD="xyz"
sftp -oport=1002 user@host:/dir/archive/file*.txt /di/data/
<< EOF
$PASSWORD
quit
EOF
出现错误:
-bash-4.1$ sh sftp_with_password.sh
Connecting to user@host...
Password Authentication
expect 脚本可以完成这项工作。
例如copy-sftp.exp:
#!/usr/bin/expect
set password [lindex $argv 0]
spawn sftp -oport=1002 user@host:/dir/archive/file*.txt /di/data/
expect "Password"
send "$password\r"
send "quit\r"
然后就可以执行了:
expect copy-ftp.exp $PASSWORD
感谢 Gonzalo Matheu,我已经成功地使用代理发送了一个大文件到 sftp:
#!/usr/bin/expect
set timeout -1
set password [lindex $argv 0]
set file [lindex $argv 1]
spawn sftp -o "ProxyCommand /usr/bin/connect -H <proxy-host>:<proxy-port> %h %p" <sftp-Username>@<sftp-HOST>
expect "password:"
send "$password\r"
expect "sftp>"
send "put $file\r"
expect "sftp>"
send "quit\r"
然后我执行它:
expect send-sftp.exp $PASSWORD /PATH/TO/MYFILE.zip
set timeout 可以让传输不被expect的wait timeout停止,你可以根据自己的需要进行调整;)
我是运行这个脚本,用于在本地复制模式文件,但它要求输入密码,甚至传递硬编码值。
脚本:
PASSWORD="xyz"
sftp -oport=1002 user@host:/dir/archive/file*.txt /di/data/
<< EOF
$PASSWORD
quit
EOF
出现错误:
-bash-4.1$ sh sftp_with_password.sh
Connecting to user@host...
Password Authentication
expect 脚本可以完成这项工作。
例如copy-sftp.exp:
#!/usr/bin/expect
set password [lindex $argv 0]
spawn sftp -oport=1002 user@host:/dir/archive/file*.txt /di/data/
expect "Password"
send "$password\r"
send "quit\r"
然后就可以执行了:
expect copy-ftp.exp $PASSWORD
感谢 Gonzalo Matheu,我已经成功地使用代理发送了一个大文件到 sftp:
#!/usr/bin/expect
set timeout -1
set password [lindex $argv 0]
set file [lindex $argv 1]
spawn sftp -o "ProxyCommand /usr/bin/connect -H <proxy-host>:<proxy-port> %h %p" <sftp-Username>@<sftp-HOST>
expect "password:"
send "$password\r"
expect "sftp>"
send "put $file\r"
expect "sftp>"
send "quit\r"
然后我执行它:
expect send-sftp.exp $PASSWORD /PATH/TO/MYFILE.zip
set timeout 可以让传输不被expect的wait timeout停止,你可以根据自己的需要进行调整;)