分页: 1 / 1

[原创][分享]免密码SSH登录脚本,支持多服务器

发表于 : 2007-11-14 17:43
七分之雨后
这段时间都是在用ubuntu,没有windows下的SecureCRT,服务器太多了密码实在不好打,嫌麻烦。
正好今天比较空闲,写了个expect的脚本。
脚本还有个缺点,服务器列表是数组,这样想删掉位于中间位置的服务器,就得重新编号,麻烦

另外请注意,密码以明文保存在文件中,注意保管脚本避免出问题!

用法:
1,如果没有安装expect,先
sudo apt-get install expect

2,然后建一个文件把下面的代码打进去

3,chmod 775 yourfile

代码: 全选

#!/usr/bin/expect
#
#用来快捷的SSH到服务器的懒人脚本
#@author  七分之雨后
#@email [email protected]
#@version 0.1  2007/11/14
#
#
set SERVER(1) IP
set PORT(1) 端口
set USER(1) 用户名
set PASSWD(1) 密码

set SERVER(2) IP
set PORT(2) 端口
set USER(2) 用户名
set PASSWD(2) 密码

set SERVER(3) IP
set PORT(3) 端口
set USER(3) 用户名
set PASSWD(3) 密码

set SERVER(4) IP
set PORT(4) 端口
set USER(4) 用户名
set PASSWD(4) 密码




puts "选择你要登录的服务器\r"
set len [array size SERVER]
for { set i 1} {$i <= $len} { incr i} {
	puts "$i.. $SERVER($i)\r"
}
expect_user -re "(.*)\n"
set sn $expect_out(1,string)
send_user "$sn\r"
send_user "\r"

spawn ssh $USER($sn)@$SERVER($sn) -p $PORT($sn)
set timeout 1
expect "*yes/no*" {
        send "yes\r"
        expect "*password:" {send "$PASSWD($sn)\r"}
}
expect "*password:" {
	send "$PASSWD($sn)\r"
}
interact

发表于 : 2007-11-15 21:27
bones7456
想法不错,几点建议:
1.脚本的权限不要设成775了,这样密码很不安全,700就可以了.
2.建议把服务器列表另外做成一个纯文本文件保存,一行一个服务器,包含若干列,编辑也方便.程序读取也不麻烦.

发表于 : 2007-11-24 13:15
yuffey
感觉不好

发表于 : 2007-11-24 13:17
BigSnake.NET
用密钥登录