[TOC]
Iterm2记住ssh密码
有了这玩意,今后就完全不在使用其他的ssh工具了
之前都使用sshpass
来做,但是sshpass
会把密码直接暴露在屏幕上,所以后面就用了expect
脚本的方式.
一. 准备配置文件
添加配置文件
文件路径自定
#!/usr/bin/expect
# /Users/liuhao/my-shell/expect.sh liuhao@192.168.1.100
# expect 是基于tcl的相对简单的一个免费脚本编程工具语言
# spawn 交互程序开始后面跟命令或者指定程序
# expect 获取匹配信息匹配成功则执行expect后面的程序动作
# send exp_send 用于发送指定的字符串信息
# exp_continue 在expect中多次匹配就需要用到
# send_user 用来打印输出 相当于shell中的echo
# exit 退出expect脚本
# eof expect执行结束 退出
# set 定义变量
# puts 输出变量
# set timeout 设置超时时间
# interact 设置为用户交互模式没有这个命令,登进去后会马上
# [lindex $argv 0] 第一个参数
# [lindex $argv 1] 第二个参数
set cmd [lindex $argv 0]
set time 5
set password 密码\n
spawn ssh $cmd
expect {
"*yes/no" {send "yes\n"}
"*password:" {send "$password\n"}
}
interact
执行命令
可用来测试,也可直接放在profile 中的command
/Users/liuhao/my-shell/expect.sh liuhao@192.168.1.100
二. 设置iterm2
step1. 打开软件设置(Command+,)
step2. 进入个人设置,点击+号, 新增自定义配置
step3. 自定义备注信息
name : 展示名称, 给自己看的,没别的用
tags: 自定义标签, 可以在后面的第三步的第一步中看到,相同的develop标签的都分成了一组.
选择command,输入我们准备好的输入脚本地址,以及参数
配置完成
三. 运行
直接运行
通过列表选择运行 (快捷键Command + O)
step1.
step2.