linux - Shell脚本从脚本输入密码

标签 linux shell ssh sftp

我正在尝试编写一个 shell 脚本来将文件传输到运行 ultra simple sftp server 的远程 Windows 机器上。 . 它是 coreftp 的精简版。 所以我没有使用公钥身份验证的选项。

从 Linux 端来看,它是非英特尔平台的精简版,所以如果我想使用“expect”,我无法安装 expect/tcl/tk。 这是出于测试目的,我想从 Shell 脚本输入密码。有方法吗?

#!/bin/sh
HOST='10.x.x.x'
USER='user'
PASSWD='passwd'

sftp $USER@$HOST

不使用任何工具就不能从shellscript输入密码吗?

最佳答案

有几种选择:

  1. 您可以使用 sshpass自动进行密码验证。

  2. Putty 包中的 SFTP 客户端 ( psftp ) 从命令行接受密码(尽管这样做并不完全安全)。

  3. 然后您可以使用一些支持 SFTP 的脚本语言。如果你走那条路,不要只使用一些类似 expect 的模块来自动化密码验证,而是使用一些自己实现 SFTP 协议(protocol)的模块,如果你想执行错误检查,这会让你更容易。

关于linux - Shell脚本从脚本输入密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14515794/

相关文章:

linux - 使用tar在家备份目录

Linux UDP 套接字 : why select()?

php - cron php5 进程太多

c - timer_create 和 timer_settime 生成段错误

windows - msysgit git clone忽略ssh配置

linux - Linux shell 脚本中的 Pascal 三角形

linux - ./配置 :/bin/sh^M : bad interpreter

php - Shell脚本段错误

java - 如何在使用 JSch SFTP 库时解析 Java UnknownHostKey?

ssh - 尽管ssh可以正常工作,但scp给出了超时错误