场景说明client发起ssh携带私钥证书登录server服务器,一般私钥都是设置密码的,所以产生了交互,正常情况下,我们必须手动操作输入密码,登录到服务器,非常的繁琐,所以我们来尝试自动登录尝试方式使用sshpass使用expect+shell组合sshpass尝试[失败]# 尝试直接安装,发现找不到brew install sshpass# 安装sshpassbrew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb# 尝试sshpass自动输入密码,发现携带了证书的一直卡着不动,失败sshpass -p 密码 ssh -i my_pri.pem myaccount@ip -p22expect+shell尝试[成功]安装expectbrew install expectjp.sh 脚本#!/bin/bashssh -i my_pri.pem myaccount@ip -p22chmod a+x jp.shexpjp.exp 脚本#!/usr/bin/expect -fspawn ./jp.sh# 注意 这里的文字需要根据自己提示自行调整expect “Enter passphrase for key ‘my_pri.pem’:“send “密码\n"interactchmod a+x expjp.exp尝试运行//运行成功./expjp.exp总结expect可以在各种产生交互的地方使用,等待大家慢慢挖掘