您的位置:首页 > 其它

ssh 自动登录并将ip写入终端标题

2011-03-18 17:09 309 查看
问题的提出:

1、每次多要登录很多个服务器,通过ssh在终端登录,每次多要修改终端标签页的title,不胜其烦。要实现直接登录后自动修改title

2、每次登录的服务器只是ip不一样,密码基本上是一样的,懒得输入,自动输入最好

解决:

1、自动修改终端的title可以该命令

PROMPT_COMMAND=/"echo -ne /"/033]0;$IP/007/""

不过要在登录后执行这条语句,新问题提出,如何在登录后执行命令

2、自动输入密码 这个可以马上想到expect,自动实现交互(like 人机交互),

那么刚刚1里面提出的问题也可以交给expect了,那么问题解决了

具体代码如下:

ssh 登录 脚本

#!/usr/bin/expect
set timeout 5
set IP [lindex $argv 0]
set pass [lindex $argv 1]
if { $argc<1 } {
puts "请输入IP: issh ip /[password/]";exit
}
spawn ssh -l root $IP
expect "yes/no"  {send "yes/r";exp_continue}
expect "password:" {
if {$pass==""} {
send "123456/r"
} else {
send "$pass/r"
}
puts "/n   login in now...";
exp_continue
}
expect  "Last*" { send "PROMPT_COMMAND=/"echo -ne ///"//033]0;$IP//007///"/"/r"; send "clear/r"}
interact


如何使用

1、将脚本保存为issh文件,放在/usr/bin 下面就可以了

2、默认密码是123456,直接 issh 192.168.19.xxx 就可以登录了。是不是很方便。终端的title也会修改为相应的ip,

如果密码不是123456 就输入 issh 192.168.19.xxx password

注意: 机子要支持expect ,ubuntu apt-get install expect
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: