当前位置: 首页 > news >正文

实现自动SSH连接

#!/usr/bin/expect  
set timeout 10  
set username [lindex $argv 0]  
set password [lindex $argv 1]  
set hostname [lindex $argv 2]  
#set username ftpuser
#set password ftpuser
#spawn 模拟终端交互
#ssh-copy-id将本机当前用户的ssh登录公钥copy到目标机器上
# "*(yes/no)*" 返回内容包含yes/no,表示添加host到已知host
#password 表示要输入目标机器的密码
#"*please*","*Permission denied*" 错误,没法成功添加ssh公钥到目标机器
#"*All keys were skipped*","*you wanted were added*" 已添加过,则直接跳过。

spawn ssh-copy-id $username@$hostname
expect {
            "*(yes/no)*" {
                send "yes\r"; 
                exp_continue;
            }
            
            "password:" {
                send "$password\r";
                exp_continue;
            }
            "*please*" { exit 5 }
            "*All keys were skipped*" { exit }
            "*you wanted were added*" {exit }
            "*Permission denied*" { exit 6 }
        }
expect eof
#1.保存上面的代码为sh文件,并设置文件具有执行权限
#2.如下使用
./auto_ssh.sh "username" "passpord" "ip"

相关文章:

  • 以太坊教程:搭建环境、编写编译一个智能合约
  • 微信小程序第三方开发需要注意的点
  • SSH配置免秘钥登录
  • 【VS】使用vs2017自带的诊断工具(Diagnostic Tools)诊断程序的内存问题
  • 浅谈Golang中select的用法
  • Ubantu 更新时间方法
  • [xdoj] 13011302 数字计数 数字计数的复仇
  • php面试题12(多态web服务器共享session的方法:将session存到数据库)($val=$data[$key];)...
  • nohup和后台运行,进程查看及终止
  • bash命令行初探
  • 转: 关于linux用户时间与系统时间的说明
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • day01.1 vmware虚拟机
  • VMware Vsphere 虚拟化
  • CentOS7切换到root用户和退回普通用户
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • CentOS从零开始部署Nodejs项目
  • golang 发送GET和POST示例
  • iOS编译提示和导航提示
  • Java 内存分配及垃圾回收机制初探
  • javascript数组去重/查找/插入/删除
  • JavaScript新鲜事·第5期
  • linux安装openssl、swoole等扩展的具体步骤
  • Mybatis初体验
  • python学习笔记 - ThreadLocal
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 分布式任务队列Celery
  • 分享几个不错的工具
  • 关于 Cirru Editor 存储格式
  • 关于Flux,Vuex,Redux的思考
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 强力优化Rancher k8s中国区的使用体验
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • $.each()与$(selector).each()
  • (2020)Java后端开发----(面试题和笔试题)
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)可以带来幸福的一本书
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET MVC 验证码
  • .net MySql
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .Net6使用WebSocket与前端进行通信
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET的数据绑定