前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 非交互式SSH

Linux 非交互式SSH

作者头像
dys
发布2018-04-03 16:54:19
3.9K0
发布2018-04-03 16:54:19
举报
文章被收录于专栏:性能与架构性能与架构

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下,执行即可

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档