expect 脚本自动登录Vultr服务器

在linux桌面系统上,每次使用终端登录远程服务器时,总要手动输入 登录名、服务器地址和密码,非常麻烦,有没有快速在终端登录服务器的方法呢?有的,那就是expect自动交互脚本。

测试环境是Ubuntu18.04

1、首先安装expect

安装expect使用以下代码检测expect是否已经安装

ls /usr/bin | grep expect

如果显示为空,则使用以下命令安装

sudo apt-get install tcl tk expect


2、你可以新建一个保存自定义脚本的文件夹,方便管理,例如,在~/myscript 目录下保存自己写的脚本

mkdir ~/myscript                  没有权限用sudo


3、进入该目录并通过vim新建脚本test

cd ~/myscript

vim  test


4、编写expect脚本

#! /usr/bin/expect


#设置保存密码的变量

set passwd "你的密码"


#设置超时

set timeout 30


#发送登录命令(用户名+IP)

spawn ssh -l root 你的服务器IP


#判断spawn命令返回的字符串中是否有"password:"

expect "password:"


#发送密码字符串到当前进程

send "$passwd\r"


#将控制权交给用户

interact

像这样

expect 脚本自动登录Vultr服务器_第1张图片

按下Esc ,输入:wq (不要忘了冒号)保存并退出


5、给脚本赋予执行权限

chmod +x test


6、执行脚本

./test 或~/myscript/test        ./表示在当前目录下执行test脚本,不然系统会去环境变量中找

你可能感兴趣的:(expect 脚本自动登录Vultr服务器)