Windows上安装配置SSH教程——win10下使用Cygwin+Expect自动登陆ssh

 

step  1.安装Cygwin,安装上Tcl和Expect两个工具。

如何在windows下安装cygwin

  • 此刻,进入cygwin软件官网,根据自己操作系统,选择32位或64的setup

    如何在windows下安装cygwin

  • 双击打开下载完成的cygwin,进入安装程序首页,下一步

    如何在windows下安装cygwin

  • 扩展包的安装方式选择,默认即可(从网上下载并安装),下一步

    如何在windows下安装cygwin

  • 选择软件的安装目录和允许使用的用户,默认即可,下一步

    如何在windows下安装cygwin

  • 选择从网上下载的软件包的存储路径,(默认或者)手动指定一个合适路径,下一步,如果手动指定的路径不存在,则会询问是否创建目录,选择:是

    如何在windows下安装cygwin

    如何在windows下安装cygwin

  • 选择网络连接方式,默认即可(直接连接,不使用代理),下一步

    如何在windows下安装cygwin

  • 选择下载点,在User URL处填图示的网址,点击Add

    如何在windows下安装cygwin

  • 选择,刚刚填入的163镜像站点,下一步

    如何在windows下安装cygwin

  • 开始从镜像站点下载并安装软件

    如何在windows下安装cygwin

  • 开始安装一些默认的软件包,如果特殊需求,默认即可,下一步

    如何在windows下安装cygwin

  • 剩下的步骤一直点下一步,最后完成安装

  •  

     

    如何在windows下安装cygwin

  • step  2.

  • 1.安装Cygwin,安装上Tcl和Expect两个工具。

    可以使用apt-cyg命令安装,也可以在安装Cygwin的时候选中这两个包。

    命令安装的话使用下面的两个命令:

    apt-cyg install tcl
    apt-cyg install expect
    

    安装后验证是否安装成功

    Tcl:win+r 输入cmd,打开cmd

    which tclsh

    输入如上代码如果出现Tcl的安装路径说明安装成功

    Expect:同样的操作

  • 2.写一个Expect脚本:

    复制代码

    #!/usr/bin/expect
    spawn ssh Administrator@192.168.16.1
    expect "*password:"
    send "123456\r"
    expect "*#"
    interact

    复制代码

    该脚本是远程登陆ssh服务器,我的服务器是Win XP系统上安装的OpenSSH,注意在服务器端的配置文件允许账号密码登陆。

    cd到脚本所在的目录,执行如下命令,即可自动登陆。

    expect ssh.tcl

     

    上图出现 C:\OpenSSH\home\Administrator>目录后即可说明已经远程联机上服务器。 

执行远程服务器的脚本,并能够打印信息,然后打印完自己退出。

step  3.expect 执行远程脚本接收打印信息然后退出,exp 执行完后退出

1 、 首先来个shell    名称:start.sh

  #!/bin/bash    #声明bash解释器

  result=`./upload.exp $path [/bash]`        #执行expect脚本,然后接受返回的参数

  echo "${result}"    #打印upload.exp执行后返回结果

  if [[ ${result} =~ "ERROR" ]];then                   #如果报错,异常退出

    echo "[ERROR] Upload failed TestFight failed, please check"
    exit 1
  fi  


2 、 在写个upload.exp 脚本

    #!/usr/bin/expect -f                      #声明是expect 解释器

    spawn ssh  root@192.168.19.52        #远程连接的服务器name 和 ip

    expect { 
    "yes/no" {send "yes\r";exp_continue}    #返回结果如果包含yes/no 自动填写yes
    "Password:" {send "123456\r"}          # 自动填写密码
    }
    expect "#"                  #返回任意字符
    send "sh ~/yuneecapp-ios/upload.sh\r"   #执行远程脚本
    expect "#"                #接受任意字符
    send "exit\r"           #发送退出,他自己回执行完毕后退出
    interact                  #声明为交互模式

最终结果是: 登陆远程服务器后执行脚本,打印脚本信息,打印完毕后,自动退出远程服务器。然后把打印结果传入start.sh脚本中的result 变量。
引文:

https://jingyan.baidu.com/article/922554467166cf851648f4cc.html

https://www.cnblogs.com/feipeng8848/p/8559773.html

https://blog.csdn.net/qq_34354426/article/details/79908519

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值