文档章节

Linux下使用shell+expect远程登录主机

明月观火
 明月观火
发布于 2017/08/16 11:53
字数 203
阅读 834
收藏 25

最近使用Ubuntu系统想远程登录自己的vps主机,但是感觉自带的远程登录软件不太好使。于是乎想着怎么使用shell脚本来登录,Google之后整理了一下,方便以后用到。

1.准备工作:安装expect

for Ubuntu

sudo apt-get update
sudo apt-get install expect

for Centos

yum install expect

2.新建脚本粘贴以下内容

#!/usr/bin/expect
spawn /usr/bin/ssh root@114.114.114.114 -p 22 # 用户名、IP地址、端口号自行设置
expect "password:"
send "remoteComputerPassword\r" # 密码请自行设置
expect efo
interact

脚本的用户名、IP地址、端口号以及密码,需要根据自己远程主机的实际情况来设置。

如果脚本无法执行,查看脚本是否添加了执行权限。

© 著作权归作者所有

共有 人打赏支持
明月观火
粉丝 7
博文 1
码字总数 203
作品 0
崇明
程序员
加载中

评论(5)

Feng_Yu
Feng_Yu

引用来自“Feng_Yu”的评论

别用expect,直接用sshpass,比expect自动登录好用一万倍

引用来自“不要点击我”的评论

不安全吧
怎么可能不安全
不要点击我
不要点击我

引用来自“Feng_Yu”的评论

别用expect,直接用sshpass,比expect自动登录好用一万倍
不安全吧
tinyhare
tinyhare
我整过一个更复杂些的
---------------->8-----------------------
#!/usr/bin/expect -f

# get info from commendline
set username [lindex $argv 0]
set host [lindex $argv 1]
set password [lindex $argv 2]

# or set manually
#set username root
#set host 213.242.32.122
#set password 123456

#trap SIGWINCH and pass it to the child we spawned. this is important for resize the window !!!!
trap {
set rows [stty rows]
set cols [stty columns]
stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH

# make ssh connection
spawn ssh -l ${username} ${host}

# send info at correct time
expect {
"*yes/no" { send "yes\r"; exp_continue }
"*password:" { send "$password\r" }
}

# keep interact
interact

# enjoy it !
---------------8<-------------------
Feng_Yu
Feng_Yu
别用expect,直接用sshpass,比expect自动登录好用一万倍
wefly007
wefly007
test
linux /etc/hosts文件作用

关于/etc/host,主机名和IP配置文件 Hosts : The static table lookup for host name(主机名查询静态表) Linux 的/etc/hosts是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主...

墨梅
2014/12/01
0
0
linux中的hosts文件解析

关于/etc/host,主机名和IP配置文件3 e; X- {- a& l Hosts - The static table lookup for host name(主机名查询静态表)6 E. N, c! 9 V! ? Linux 的/etc/hosts是配置ip地址和其对应主机名的...

Minho
2011/07/23
0
0
CentOS VPS新手教程(1)VPS登录

现在大多数VPS都是Linux的,而通常安装的是CentOS发行版。 Linux服务器登录不同于Windows服务器的远程登录方式,通常是没有远程桌面支持的,也就是说不是图形化的而是基于控制台的远程操作。...

zetaplusae
2012/12/22
0
0
Linux操作系统下/etc/hosts文件配置方法

1、关于/etc/host,主机名和IP配置文件 Hosts - The static table lookup for host name(主机名查询静态表) hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,以ASCII格式保存在...

五大三粗
2015/03/16
0
0
使用putty在windows环境下远程登录linux

使用putty在windows环境下远程登录linux: putty.exe是个有界面的程序,输入目标主机的ip地址或者域名就点击连接,输入用户和密码就建立的连接,如果是第一次连接,还有一些提示信息,大概意...

LiShixi
2012/06/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
21分钟前
2
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
29分钟前
1
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
39分钟前
16
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
1
0
区块链技术中的那些能商用的企业级应用

WEPOWER是一家立陶宛初创企业,旨在改变可再生电力项目的付费方式。WePower公司创始人Nick Martyniuk表示,政府统一收购价的存在推动了全球风能与太阳能市场的发展。因此,他的公司希望帮助那...

问题终结者
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部