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 - 在 node.js 服务器长进程期间 screen 关闭并退出

linux - 从命令行连接文件内容

authentication - vagrant 默认以 root 身份登录

linux - 如何在提交前从 git add 中删除某种类型的文件和目录?

linux - 如何使用 bash 监视目录中新创建的文件?

linux - 在子 shell 中运行的脚本不运行与调用脚本相同的 shell

Ruby Net::SSH 未定义方法 'shell'

bash - 自动将两个xterm和ssh启动到服务器中

c - 为什么返回 if 和 else 不起作用

linux - 如何将选定的文件从一个文件夹 move 到另一个带有子文件夹的文件夹