使用 SCP 连接到远程服务器以放置文件。在执行此操作时,我们需要使用质询-响应身份验证方法向远程服务器进行身份验证,我们有一个单独的身份验证服务器:
For example
scp <Filename> admin@IP of REMOTE server:/Path
Challenge : 12345 Product ID:435432
Response :
它要求响应(密码)来完成文件传输,我们需要将创建的质询和产品 ID 复制到身份验证服务器(server2),并从该服务器获取响应并将其放入上面显示的响应字段中。如果响应正确,它将继续文件传输,否则它将拒绝传输。
出于安全原因,我们提供了质询-响应身份验证选项。
我想使用此方法进行自动文件传输。
答案1
由于不知道更多细节,很难说。但这听起来确实是一项最适合expect
脚本:
Expect 是一个根据脚本与其他交互式程序“对话”的程序。根据脚本,Expect 知道程序可以做什么以及正确的响应应该是什么。解释型语言提供分支和高级控制结构来指导对话。此外,用户可以在需要时直接控制并进行交互,然后将控制权交还给脚本。
有许多网站提供expect
脚本示例,例如这个和这个。但概念相当简单。以下是其中一个示例页面中的一个基本的“hello world”示例:
#!/usr/bin/expect
set timeout 10
expect "hello"
send "world"
这基本上将脚本超时设置为 10 秒,它会expect
输入单词“hello”,然后它会发回单词“world”。
将该基本概念包装在一些 Bash 脚本逻辑中,也许这将帮助您实现使用质询-响应身份验证方法创建自动文件传输过程的目标。