Expect脚本使用与安全相关技术详解
1. 初始期望与连接失败处理
在进行远程连接时,第一个 expect 命令会同时查找密码提示、shell提示以及各种失败情况。若不需要密码,最终模式匹配成功,脚本会继续执行下一个命令;若远程计算机提示输入密码,会请求用户提供密码。当前的超时时间会保存在 old_timeout 中,之后再恢复,这类似于在过程中设置局部变量。
当用户提供密码后,脚本会将其发送到远程主机, exp_continue 会使 expect 命令返回并继续查找更多输出,期望能找到shell提示。若出现各种失败情况,都会反馈给用户。若检测到 eof ,会打印远程主机的剩余输出,该输出可能包含远程主机关闭连接的原因。
以下是连接失败时的代码处理示例:
send_user "connection to host failed: "
send_user "$expect_out(buffer)"
exit
} -re $prompt
}
2. 脚本的安全保护
在自动化操作中,除读取密码外的其他操作通常都可自动化。出于安全考虑,密码不应作为参数传递给脚本。可将密码直接嵌入脚本中,有文件保护和主机保护两种方式来保障脚本安全。
2.1 文件保护方式
包含密码的脚本应让普通用户(如使用 cat 和 vi 等工
超级会员免费看
订阅专栏 解锁全文
679

被折叠的 条评论
为什么被折叠?



