打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【生信笔记】Linux如何自动登录服务器账号?

在使用服务器时,往往需要进行密码登录,甚至有的需要先登录堡垒机,再登录开发机,输入过程较为繁琐,因此可以考虑将命令写成脚本的形式自动化登录。

expect是一个能实现自动和交互式任务的解释器,它也能解释常见的shell语法命令,其特色在以下几个命令:
spawn命令
spawn command命令会fork一个子进程去执行command命令,然后在此子进程中执行后面的命令;
在ssh自动登陆脚本中,我们使用 spawn ssh user_name@ip_str,fork一个子进程执行ssh登陆命令;
expect命令
expect命令是expect解释器的关键命令,它的一般用法为 expect "string",即期望获取到string字符串,可在在string字符串里使用 * 等通配符;
string与命令行返回的信息匹配后,expect会立刻向下执行脚本;
set timeout命令
set timeout n命令将expect命令的等待超时时间设置为n秒,在n秒内还没有获取到其期待的命令,expect 为false,脚本会继续向下执行;
send命令
send命令的一般用法为 send "string",它们会我们平常输入命令一样向命令行输入一条信息,当然不要忘了在string后面添加上 \r 表示输入回车;
interact命令
interact命令很简单,执行到此命令时,脚本fork的子进程会将操作权交给用户,允许用户与当前shell进行交互;

撰写脚本

vim ssh.sh
点击i进入输入模式,复制以下内容(地址和密码结合实际情况修改
 #!/usr/bin/expect                    
 set timeout 10                          
 spawn ssh username@host_name  #输入用户名和地址
 expect "*password*"                      
 send "paasowrd\r"   #输入服务器账号密码(\r不能丢,表示输入完成enter)    
 interact                              
击esc,输入wq保存并退出
输入 Chmod 777 ssh.sh 给予权限
./ssh.sh登录账号
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
shell脚本实现无密码交互的SSH自动登陆
0 SHELL训练营--day10_expect
expect spawn、linux expect 用法小记
expect学习笔记及实例详解
打造自己的弱口令扫描器
Expect 教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服