Linux下使用shell+expect远程登录主机
博客专区 > 減一 的博客 > 博客详情
Linux下使用shell+expect远程登录主机
減一 发表于6个月前
Linux下使用shell+expect远程登录主机
  • 发表于 6个月前
  • 阅读 783
  • 收藏 25
  • 点赞 1
  • 评论 5

新睿云服务器60天免费使用,快来体验!>>>   

最近使用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
评论 (5)
wefly007
test
Feng_Yu
别用expect,直接用sshpass,比expect自动登录好用一万倍
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”的评论

别用expect,直接用sshpass,比expect自动登录好用一万倍
不安全吧
Feng_Yu

引用来自“Feng_Yu”的评论

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

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

不安全吧
怎么可能不安全
×
減一
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: