AlexRomeo
发布于 2017-11-11 / 26 阅读
0
0

Linux自动交互工具

背景

在部署大数据平台的场景下,集群、各项服务之间需要经常进行交互,每次交互都需要输入密码,此时需要免密登录,当今的技术中,几乎所有集群部署的时候可能都需要进行免密配置,但进行免密交互第一次执行时需要输入密码,故此产生此脚本,此时就需要使用"expect"工具来实现。

实现免密登录访问是需要使用证书的,大部分Linux系统都是可以使用ssh-keygen命令来生成证书文件的。将公钥证书文件内容发送给需要被免密访问的服务器后,即可使用配对生成的私钥证书文件进行免密访问。

expect 工具是一个自动化工具,它允许在脚本与命令行程序进行交互,完成自动化的操作。

示例

#!/bin/bash

# 远程服务器的ip和用户名
ip=xxx.xxx.xxx.xxx
username=your_username

# 密码
password=your_password

# ssh 登录命令
login_cmd="ssh ${username}@${ip}"

# expect 脚本
expect -c "
spawn $login_cmd
expect {
  \"*assword\" {
    send \"${password}\n\"
    exp_continue
  }
  \"yes/no\" {
    send \"yes\n\"
    exp_continue
  }
  \"$\"
}
interact
"

评论