expect实现scp/ssh-copy-id非交互】的更多相关文章

在命令行ssh远程登录服务器和scp远程传输文件都需要交互式输入密码,无法像mysql登录数据库 mysql -uroot -p123456一样直接完成. 其实可以用脚本依赖expect来达到这一目的. 首先安装expect: [root@yqtrack-jumphost src]# yum -y install expect SSH登录脚本: #!/usr/bin/expect set timeout 30 spawn ssh root@192.168.1.93 expect "passwor…
expect工具可以实现自动应答,从而达到非交互的目的. expect具体使用用法比较复杂,中文手册我正在翻译中,以后翻译完了做了整理再补.本文只有几个ssh相关最可能用上的示例. yum -y install expect 1.1 scp自动应答脚本 以下是scp自动问答的脚本. [root@xuexi ~]# cat autoscp.exp #!/usr/bin/expect ##########################################################…
sshpass-Linux命令之非交互SSH密码验证 参考网址:https://www.cnblogs.com/chenlaichao/p/7727554.html ssh登陆不能在命令行中指定密码.sshpass的出现,解决了这一问题.sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码. 它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行.文件.环境变量中读取. 其默认没有安装,需要手动安装,方法如下: 下载网址:https://sour…
  sshpass-Linux命令之非交互SSH密码验证 ssh登陆不能在命令行中指定密码.sshpass的出现,解决了这一问题.sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码. 它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行.文件.环境变量中读取. 其默认没有安装,需要手动安装,方法如下: sshpass下载地址:http://sourceforge.net/projects/sshpass/ 下载为一个 tar.gz的压缩包.…
工作中经常需要把一些文件从一个服务器传输到另一台服务器,linux环境下最习惯的方式当然是scp,但是scp需要交互输入密码有时候觉得麻烦,记录几种无需手动输入密码的方法. 方法一:建立SSH互信 此方式不仅是方便scp,在可靠系统间此方式也是非常方便的连接方式,具体建立互信操作过程暂略,前面地方有单独记录过了. 方法二:使用sshpass工具 建立信任关系的做法是最方便和安全的做法,但是在有些场景下(比如远端的authorized_keys是不能随意更改的),那么这个时候我们就可以借助sshp…
以前也学过一些shell,不过学得并不是很深入,动手写的代码的时间也不是很多.前不久将shell比较细的过了一遍,leader布置了任务让用shell写一个脚本将redis源码压缩包从一个服务器上传到另外一个服务器,同时在本服务器上传入命令,解压源码包并在另一个服务器上启动redis服务. 虽然学了一些shell,但是本次任务中需要使用的SCP和expect却是第一次使用,其中也遇到了一些问题,所以在这里总结一下. Expect 现代的Shell对程序提供了最小限度的控制(开始,停止,等等),而…
项目名 JSSH git地址: https://gitee.com/chejiangyi/jssh 项目介绍 linux scp(文件上传,下载) shell命令的java ssh jar和linux expect工具,主要是避免shell 密码手工输入带来的麻烦(免密ssh,scp),简单易用,方便上手 软件架构 jssh.jar 使用jsch封装的java版本 jssh.sh 使用expect封装的sh版本 以上两者是独立的,不同的实现. jssh.jar安装教程 wget https://…
将以下内容保存为.sh文件后运行即可,需根据各自情况修改ip_up和ip_arr #!/bin/bash #脚本功能:ssh秘钥免交互批量分发 #制 作 人:罗钢 联系方式:278554547@qqcom #要点提示:ssh-keygen -f和-n参数免交互生成秘钥;sshpass命令免交互输入密码;ssh -o参数取消提示语句 . /etc/init.d/functions Ip_up=172.16.1. Ip_arr="7 31 41" Pass_c=123456 Pass_e=…
机器的克隆参考centos7克隆ip|机器名|映射关系|别名配置(hadoop完全分布式准备一) 那么问题来了,如果我们有30台机器,之间可以互相访问,那我们如何快速安装配置环境如jdk hadoop等?可通过scp命令将配置.下载好的工具等直接copy到我们新的机器上就可以了. scp(secure copy)安全copy Scp定义:Scp可以实现服务器与服务器之间的数据copy.(from server1 to server2)基本语法 Scp -r $pair/$fname $user@…
一般使用scp/ssh/rsync传输文件时,都需要输入密码.下面是免密码传输文件的方法. 假设要在两台主机之间传送文件,host_src & host_dst.host_src是文件源地址所在的机器,host_dst是目的地址所在的机器. 1. 在host_src机器上,用执行scp/ssh/rsync命令的用户登录,执行下面的命令: $ ssh-keygen -t rsa 按回车健继续,默认的public key会被存放在 ~/.ssh/id_rsa.pub: Your public key…
在linux的终端运行:$HIVE_HOME/bin/hive 会进入交互模式: $HIVE_HOME/bin/hive  -e或者-f 是非交互模式 1.非交互模式运行HQL语句 $HIVE_HOME/bin/hive -e 'select * from movie limit 10' 会显示mapreduce的进度,但不会进入hive的交互模式,终于现实查询结果 2.非交互模式运行HQL语句(-S静音模式) $HIVE_HOME/bin/hive -S -e 'select * from m…
1.从两个不同维度来划分,是否交互式,是否登录 2.交互式shell和非交互式shell 交互式模式:在终端上执行,shell等待你的输入,并且立即执行你提交的命令.这种模式被称作交互式是因为shell与用户进行交互.这种模式也是大多数用户非常熟悉的:登录.执行一些命令.退出.当你退出后,shell也终止了. 非交互式模式:以shell script(非交互)方式执行.在这种模式 下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们.当它读到文件的结尾EOF,shell也就终止…
1. shell中使用ssh远程连接服务器做一些事情通常需要交互输入些信息, 可使用expect语句解决: 2. expect中设置变量语法: set name xxx set age    xxx       # 使用set设置变量, name, age为变量名称, 后面是变量的值. 3. 变量的引用同shell, 使用$来引用 spawn ssh $name@$age 4. expect中的位置变量; set ip [lindex $argv 0]           # 等同于shell中…
Sshpass是使用SSH所谓的"交互式键盘密码身份验证"以非交互方式执行密码身份验证的工具 通俗来说就是 使用ssh密码登录 是需要在连接时手动输入密码的,没办法明文连接,如下图,需要交互的输入密码. 而Sshpass 做的就是通过明文的方式使用ssh,并带来了一些更新鲜的特性 安装 macOS - brew下载安装 # 安装命令 brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Lib…
ssh登陆不能在命令行中指定密码,也不能以shell中随处可见的,sshpass 的出现,解决了这一问题.它允许你用 -p 参数指定明文密码,然后直接登录远程服务器. 它支持密码从命令行,文件,环境变量中读取   $> sshpass -h Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters -f filename Take password to use from file -d number Use number as file des…
1.yum安装yum install sshpass -y1.1编译安装yum install wget -ywget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gztar -zxvf sshpass-1.06.tar.gzcd sshpass-1.06./configuremakemake install2.自定义脚本#!/bin/bashpassword="admin123!&qu…
#!/bin/bash#-t 指定 SSH 密钥的算法为 RSA 算法;-N 设置密钥的密码为空;-f 指定生成的密钥文件存放在哪里 rm -rf ~/.ssh/{known_hosts,id_rsa*}ssh-keygen -t RSA -N '' -f ~/.ssh/id_rsa…
shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 expect "*password:" send "123\r" expect "*#" interact 原文链接:http://www.xuanhao360.com/linux-expects/ Expect是一个用来处理交互的命令.借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成…
paswd_key = '.*assword.*'  匹配Password ssh_newkey = '.*(yes/no).*' 匹配 Are you sure you want to continue connecting (yes/no) #!/usr/bin/python2.7 import pexpect import os, sys, getpass def ssh_command(user, host, password, command): ssh_newkey = '.*(ye…
[http://blog.51yip.com/linux/1462.html#] #!/usr/bin/expect -f set ip 192.168.1.201 set password meimiao1905 set timeout 10 spawn ssh root@$ip expect { "*yes/no" { send "yes\r"; exp_continue} "*password:" { send "$passwor…
1.安装expect expect用于shell脚本中自动交互,其是基于tcl编程语言的工具.所以安装expect首先安装tcl.本文中使用的是expect5.45和tcl8.6.6. 安装tcl [root@tseg0 /]$ mkdir /tools [root@tseg0 /]$ tar -zxvf tcl8.6.6-src.tar.gz [root@tseg0 /]$ cd tcl8.6.6/unix/ [root@tseg0 /]$ ./configure [root@tseg0 /]…
本文简要介绍了expect工具语言的功能.用法,并以实例来具体说明 expect是什么 Expect是一个免费的编程工具语言,用来完成通信过程中的交互式任务,而无需人的干预. 通过shell虽然可以实现诸如循环.判断等控制流功能,但是在一些需要实现信息交互的场合,还是要通过人工干预来完成.为实现信息的交互,expect被发明,并不断随着时间的推移而功能日益强大.Expect需要Tcl编程语言的支持,要在系统上运行Expect必须首先安装Tcl. 安装expect 首先查看系统中是否有安装expe…
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ""   首次执行不交互 第二次再次执行会让输入y…
看着用 windows 的 scp 命令很快很是羡慕. 这个问题让我实实郁闷了好几天. 在 Linux 下不管是用 ssh 还是用 scp, 连接速度都很慢 (登陆提示框的弹出时间). 确切地讲, 每次的登陆连接平均消耗了 30 秒!  言归正传. 如何找出究竟是什么导致了 ssh 或是 scp 的登陆很慢? 如何修复该所谓的登陆 "慢" 或 "延迟"? 今天 Google 了一下, 很快就有了解决方案. :-) 你也 google 了吧? :-) 什么导致了 sc…
刚上线的服务器需要备份日志,要备份到另一台服务器上去,为了减少工作量,采用linux的定时任务去自动执行.因服务器都是linux的,因此采用linux的远程复制scp命令.但这里涉及到一个问题,就是scp命令执行时需要输入密码,在网上大概搜集了下有两种方法:①一种是采用except方法(会存储明文密码):②采用ssh生成密钥的方式.这里我采用第二种方式.耗时两天,中途遇到各种问题,不过总算解决了 备份方式:拷贝前一天的日志文件到备份服务器,再压缩后删除复制的本地文件.日志文件每天都会产生,格式都…
把你的本地主机用户的ssh公匙文件复制到远程主机用户的~/.ssh/authorized_keys文件中 假设本地主机linux100,远程主机linux200 一,在linux100主机里的用户 运行 #ssh-keygen -t rsa 结果如下 QUOTE: Generating public/private rsa key pair. Enter file in which to save the key (/home/.username/ssh/id_rsa):#回车 Enter pa…
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 spaw…
1:简单的实现ssh登录 #!/usr/bin/expect set ip "10.0.0.142" set user "root" set password " spawn ssh $user@$ip expect { "yes/no"{ send "yes\n";exp_continue } "password:"{ send "$password\r"} } intera…
不同机器之间的文件拷贝,可以用scp命令 使用时报:ssh:connect to host 192.16.41.121 port 22:connectionrefused mac 无法ssh localhost,错误提示:bash: /usr/local/bin/ssh_session: Permission denied1.编辑/etc/ssh/sshd_config文件,注释掉 #ForceCommand /usr/local/bin/ssh_session 2.启动sshd服务:sudo…
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P "" 首次执行不交互 第二次再次执行会让输入y…