自动化免密工具sshpass 和 非交互工具expect

在大多数情况下,Linux 系统管理员使用 SSH 登录到程 Linux 服务器时,要么是通过密码,要么是无密码 SSH 登录,或基于密钥的 SSH 身份验证。

如果你想自动在 SSH 登录提示符中提供密码和用户名怎么办?这时 sshpass 就可以帮到你了。

sshpass 的定义:ssh 登陆不能在命令行中指定密码,sshpass 的出现则解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。

安装sshpass:

一、启用 EPEL 仓库并使用 yum 命令安装它。

yum install sshpass  -y

二、源码安装 sshpass:

$ wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz

$ tar -xvf sshpass.tar.gz

$ cd sshpass-1.06

$ ./configure

# sudo make install

三、rpm包安装sshpass:

可以去官网获取rpm安装包,安装命令 rpm -ivh sshpass(包名)

查看sshpass包是否安装成功:rpm -qa | grep sshpass

#rpm包也可以联系作者获取。

使用sshpass:

1、直接远程连接某主机

sshpass -p {密码} ssh {用户名}@{主机IP}

2、远程连接指定ssh的端口

sshpass -p {密码} ssh -p ${端口} {用户名}@{主机IP}

3、从密码文件读取文件内容作为密码去远程连接主机

sshpass -f ${密码文本文件} ssh {用户名}@{主机IP}

4、从远程主机上拉取文件到本地

sshpass -p {密码} scp {用户名}@{主机IP}:${远程主机目录} ${本地主机目录}

5、将主机目录文件拷贝至远程主机目录

sshpass -p {密码} scp ${本地主机目录} {用户名}@{主机IP}:${远程主机目录}

6、远程连接主机并执行命令

sshpass -p {密码} ssh -o StrictHostKeyChecking=no {用户名}@{主机IP} 'rm -rf /tmp/test'

-o StrictHostKeyChecking=no :忽略密码提示

例for i in `cat /home/jiaoben/$1`;do sshpass -p密码 ssh -o StrictHostKeyChecking=no $2@$i $3;done

$1是批量主机ip    $2是用户名称    $3是需要批量执行的命令,长命令用””括起来。


  expect

expect << EOF
spawn  bash ./xxx.sh
expect "*" { send "q" }
expect "*yN*" { send "y\r" }
expect "*Yn*" { send "y\r" }
expect eof
EOF

expect <<-EOF
    set timeout 100
    spawn  bash ./xxx.sh
    expect "*" { send "q" }
    expect "*yN*" { send "y\r" }
    expect "*Yn*" { send "y\r" }
    expect eof
    EOF  #注意这里需要tab


expect <<-EOF
    spawn ssh-copy-id $user@host
    expect {
    "yes/no" { send "yes\n";exp_continue }
    "password" { send "${passwd}\n" }
    }
    expect eof
    EOF

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值