使用expect自动登录与SSH密钥拷贝
需积分: 10 36 浏览量
更新于2024-09-02
收藏 353KB PDF 举报
"该文档是关于使用expect工具进行自动化登录的实战指南,主要涉及expect的安装、使用,以及如何结合shell脚本实现跨服务器的命令操作。expect是一种强大的自动化工具,能够模拟用户交互,尤其在处理需要输入密码或确认交互的场景中非常有用。文档中还提供了具体的ssh非交互拷贝密钥和自动登录harbor的示例。"
在自动化运维领域,expect工具扮演着重要的角色。它允许编写脚本去自动化那些通常需要人工交互的任务,如SSH登录、文件传输等。下面将详细讲解expect的使用及其在自动登录过程中的应用。
1、安装expect
在Linux系统中,expect可以通过包管理器进行安装。例如,在Red Hat或CentOS系统中,可以使用`yum install expect -y`命令来安装。安装完成后,可通过`which expect`命令查找expect的可执行文件位置,确保其已加入PATH环境变量以便后续使用。
2、expect非交互式拷贝SSH密钥
SSH密钥对的拷贝通常是手动进行的,但使用expect可以实现自动化。在提供的示例中,创建一个名为`expect.sh`或`expect.py`的脚本,其中包含expect命令行语法。`spawn ssh -l`用于启动一个新的SSH会话,`ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.92`则是拷贝本地的公钥到远程主机。`expect`语句用于等待特定的提示(如密码提示),然后`send`发送相应的输入(在这里是密码)。最后,`interact`允许expect脚本接管交互,直到会话结束。
3、执行expect脚本
脚本创建完成后,需赋予执行权限,如`chmod +x expect.sh`,然后通过`./expect.sh`来执行。需要注意的是,执行方式的正确性,避免直接使用`sh expect.sh`或尝试用Python执行,因为这可能导致错误或不兼容问题。
4、expect自动登录harbor
在另一个示例中,expect被用来自动登录私有Harbor仓库。创建的`a.sh`脚本中,`spawn docker login 192.168.0.73:5000`启动docker登录过程,然后`expect`等待用户名和密码提示,分别发送预先设定的用户名和密码。
通过这种方式,expect可以极大地提高运维效率,减少人工干预,特别是在需要频繁登录或拷贝密钥的场景下。它也可以结合shell脚本,扩展更多的自动化任务,如批量部署、系统维护等。熟练掌握expect工具是提升IT运维自动化水平的关键技能之一。
2020-09-15 上传
2010-07-14 上传
2022-09-24 上传
2021-10-09 上传
2021-09-06 上传
2008-12-16 上传
2021-09-06 上传
2021-09-14 上传
2023-04-17 上传
聚悟能
- 粉丝: 22
- 资源: 5
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器