您的位置:首页 > 运维架构 > Shell

shell脚本实现ssh自动登录

2016-12-30 09:38 1096 查看
功能:

shell脚本实现ssh自动登录, 里面有些注释掉的是编写时遇到的一些问题和调试信息

说明:

LOGIN_FWQ: 登录账户名

LOGIN_FWQ_IP: 登录IP

LOGIN_FWQ_PW: 登录密码

代码如下:

fwqs_ssh.sh 脚本内容,

LOGIN_FWQ=xcz
LOGIN_FWQ_IP=192.168.1.158
LOGIN_FWQ_PW=123
./_fwq_ssh-login_v2.sh $LOGIN_FWQ $LOGIN_FWQ_IP $LOGIN_FWQ_PW

_fwq_ssh-login_v2.sh 脚本内容

#!/usr/bin/expect

#send_user "argc: $argc\n"
if {$argc != 3} {
send_user "argc: $argc\n"
send_user "usage:\n"
send_user "	./_fwq_ssh-login_v2.sh \$user \$ip \$pw\n"
exit
}

set LOGIN_FWQ [lindex $argv 0]
set LOGIN_FWQ_IP [lindex $argv 1]
set LOGIN_FWQ_PW [lindex $argv 2]

spawn ssh $LOGIN_FWQ@$LOGIN_FWQ_IP

#expect "password: "
#==> compatible is not good

### 密码错误时,不会自动再次输入
#expect "assword"
#send "$LOGIN_FWQ_PW\n"

### 密码错误时,自动再次输入-1
### issue 等待时间timeout
#expect "assword" {
#	send "$LOGIN_FWQ_PW\n"
#	exp_continue
#}

### 密码错误时,自动再次输入-2
expect {
"assword" {
send "$LOGIN_FWQ_PW\n"
exp_continue
}

# no use -->why ???s
#	"again" {
#		send_user "====================================\n"
#		exp_continue
#	}

### 防止等待时间timeout
### 无\n, or is too much
"$LOGIN_FWQ" {
send_user "Success login"
}
}

interact
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: