Linux 非交互式SSH

ssh是linux管理时常用的一个服务,ssh有个特点,属于交互式操作,就是当你执行ssh时,他会要求你手动输入密码 这就给shell脚本带来了麻烦,如果想在脚本中使用ssh进行自动化远程操作,非常不方便 ssh支持双方配置后的免密码操作,但比较麻烦 还有一种常用的方式:expect,把密码放入脚本,执行expect,他可以帮助我们自动完成输入密码的这个交互,expect实质是进行模拟操作,执行脚本时会感觉到这个动作 下面介绍下 sshpass,以非交互式操作ssh,可以直接在命令行指定密码,方便了很多

使用示例

(1)命令行中指定密码 ./sshpass -p 密码 ssh -o StrictHostKeyChecking=no root@15.28.16.3 -p 端口号 "ls" StrictHostKeyChecking=no 避免第一次登录时出现公钥检查,如果不指定这个参数,执行时会发现没有反应,实际上是背后执行了检查操作,没有显示出来,所以感觉是没有响应 -p 端口号 是对方机器ssh的端口号,如果是默认端口,可以省略这个参数 上面是ssh命令的示例,远程拷贝也是常用的操作,示例: ./sshpass -p 密码 scp -P端口号 15.28.16.3:/root/test.txt . (2)指定密码文件 可以把密码保存到文件中,sshpass命令中用参数指定密码文件 把密码写入文件 echo "密码" > ssh_passwd 执行sshpass 指定文件 ./sshpass -f ssh_passwd ssh -o root@15.28.16.3 "ls" (3)从环境变量读密码 还可以把密码设置到环境变量,变量名要为 SSHPASS export SSHPASS="密码" ./sshpass -e ssh -o root@15.28.16.3 "ls"

安装sshpass

下载地址 http://sourceforge.net/projects/sshpass/

安装

tar zxvf sshpass-1.05.tar.gz cd sshpass-1.05 ./configure --prefix=/usr/local/sshpass make make install 安装完成后,sshpass命令在/usr/local/sshpass/bin下,执行即可

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2016-03-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏静下来

增加wordpress可以上传.torrent文件

今天想上传个文件,是.torrent后缀的。。就是种子,为什么要上传,咱就不说了。。。wordpress本身是不支持上传.torrent文件的,不过我们可以用代...

3395
来自专栏Porschev[钟慰]的专栏

Nodejs学习笔记(五)--- Express安装入门与模版引擎ejs

前言   前面也学习了一些Node.js的基本入门知道,现在开始进入Web开发的部分;   Node.js提供了http模块,这个模块中提供了一些底层接口,可...

34110
来自专栏王磊的博客

CentOS安装运行NodeJS框架Express

 安装依赖包 yum -y install gcc make gcc-c++ openssl-devel wget 下载/解压NodeJs wget http:...

4169
来自专栏移动端周边技术扩展

Vue.js学习笔记(1)

931
来自专栏前端杂谈

什么是前端路由

49811
来自专栏Angular&服务

Angular CLI 常用终端操作命令

初始化创建项目时,自动添加了 <code> @angular/router </code> ,自动添加到package.json 文件中

1554
来自专栏云飞学编程

新手自制一个单独读写txt文本的python模块

作为一个新学习python的小白,经常遇到读取文本和写入文本的with open,出现各种编码错误或者其他错误,很烦,这里给大家介绍一个比较实用的方法。

1602
来自专栏Django中文社区

django 实现简单的搜索功能

搜索是一个复杂的功能,但对于一些简单的搜索任务,我们可以使用 django model 层提供的一些内置方法来完成。本文将结合 django 模型管理器的 fi...

1.1K5
来自专栏北京马哥教育

73 条日常 shell 命令汇总,总有一条你需要!

1.检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo "open" 2.让进程转入后台: Ctrl + ...

2938
来自专栏前端知识分享

第107天:Ajax 实现简单的登录效果

Ajax是一项使局部网页请求服务器信息,而不需整体刷新网页内容的异步更新技术。这使得向服务器请求的数据量大大减少,而且不会因局部的请求失败而影响到整体网页的加载...

1101

扫码关注云+社区

领取腾讯云代金券