一、ssh免交互远程连接linux服务器
ssh在远程连接linux系统时,会有交互,比如输入yes/no,或者需要输入密码。我们怎么避免这些交互呢!比如我们可以用telnet远程登录交换机,去备份交换机的配置,如果每一台都要手动输入密码,在有很多台交换机的情况下,这些交互就会显得很繁琐,或者我们需要自动备份这些交换机,在写脚本的时候也需要避免这些交互。现在我们来用expect这个工具来避免这些交互。
1.1、安装expect
命令:
1 [root@client yck]# yum -y install expect 2 [root@client yck]# rpm -q expect 3 expect-5.45-14.el7_1.x86_64 4 [root@client yck]# 5 [root@client yck]#
1.2、远程登录linux系统的脚本
脚本:
1 #!/usr/bin/expect #制定expect解释器 2 set ip [lindex $argv 0] #创建变量ip,并指定第一个位置变量 3 spawn ssh root@$ip #spawn创建一个回话,root用户远程连接 4 expect { 5 "yes/no" { send "yes\r";exp_continue } #捕捉到“yes/no”,就发送指令yes,\r表示回车,ex_continue表示没有捕捉到“yes/no”,继续下一步 6 "password:" { send "admin@1234\r" }; #捕捉到"password:",就发送“密码+\r” 7 } 8 interact #保持连接,不退出ssh 9