当前位置: 首页 > 编程笔记 >

shell脚本通过expect实现自动单边无密登录功能

鲁靖
2023-03-14
本文向大家介绍shell脚本通过expect实现自动单边无密登录功能,包括了shell脚本通过expect实现自动单边无密登录功能的使用技巧和注意事项,需要的朋友参考一下

最近项目需要实现单边无密登录,去网上搜索了下相关文章,实践之后发现几乎都不能用。于是结合expect的使用方法自行写了一个,通过验证可用。现在总结在这供需要的朋友参考。

代码如下:

EXPECT=/usr/bin/expect 
$EXPECT <<EOF 
spawn ssh-keygen -t rsa 
expect "*ssh/id_rsa*" { 
  send -- "\r" 
  expect "*for no passphrase*" 
  send -- "\r" 
  expect "*passphrase again*" 
  send -- "\r" 
  exp_continue 
} 
EOF 
iplist=`cat /root/ip.list` 
for ip in $iplist 
do 
  $EXPECT <<EOF 
  spawn ssh-copy-id root@$ip 
  expect "*(yes/no)?*" { 
    send -- "yes\r" 
    expect "*?assword:*" 
    send -- "$PASSWD\r" 
  } "*?assword:*" { 
    send -- "$PASSWD\r" 
    exp_continue 
  } 
EOF 
done 

以上所述是小编给大家介绍的shell脚本通过expect实现自动单边无密登录,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 我有一个批处理文件,其中有用户名和密码登录以下格式的网站在第16行第5个字是用户名,第7个字是密码。 启动VPNGUI-c-用户1000-pwd 123456 我需要一个关于JavaScript的帮助,它应该打开网站主页,阅读批量文件收集用户名和密码,自动填写用户名和密码在主页上,并使用发送键登录。我已经尝试过使用vbscript,下面是我的代码,但我需要Java版本,它应该允许用户一次点击就自动

  • 本文向大家介绍Linux中使用expect脚本实现远程机器自动登录,包括了Linux中使用expect脚本实现远程机器自动登录的使用技巧和注意事项,需要的朋友参考一下 首先创建一个expect脚本ssh_expect,文件内容如下: 然后定义一些命令别名,比如: 这些别名可以写到~/.bashrc文件中 然后执行 h101 就可以自动登录192.168.0.101机器了。

  • 本文向大家介绍selenium+python实现自动登录脚本,包括了selenium+python实现自动登录脚本的使用技巧和注意事项,需要的朋友参考一下 os:windows 前提:Python,selenium,IEDriverServer.exe,ie浏览器 首先安装Python2.7 安装成功后,计算机联网状态下在cmd命令行下输入:pip install -U selenium sele

  • 本文向大家介绍Shell脚本之Expect免交互的实现,包括了Shell脚本之Expect免交互的实现的使用技巧和注意事项,需要的朋友参考一下 Expext概述 Expect是建立在tcl基础上的一个工具,Expect是用来自动化控制和测试的工具。主要解决shell脚本中不可交互的问题。有助于大规模的系统运维工作。在日常的运维与开发中,常常需要运城登录到服务器,然而登录的过程却是个需要交互的过程,

  • 本文向大家介绍java web实现自动登录功能,包括了java web实现自动登录功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java web实现自动登录功能的具体代码,供大家参考,具体内容如下 主要思路就是:当用户访问网站的首页时,浏览器端会先检擦浏览器中存在的cookie中是否又登录的用户的用户名,如果有,则直接跳转至用户登录好的界面,如果没有,则重定向至登录界面,在服务

  • 问题内容: 是否有任何聪明的方法可以通过ssh在远程主机上运行本地Bash功能? 例如: 是的,我知道这行不通,但是有办法实现吗? 问题答案: 您可以使用该命令通过来使功能在远程计算机上可用。有多个选项,具体取决于您要如何运行远程脚本。 要在远程主机上使用该功能: 更好的是,为什么还要麻烦管道: 或者,您可以使用HEREDOC: 如果要发送脚本中定义的所有函数,而不仅仅是发送,请像这样使用: 说明