sshpass的安装与使用

一.简介

1.定义:

ssh 登陆不能在命令行中指定密码,sshpass 的出现则解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。

2.使用 sshpass 原因

使用 sshpass 来进行远程批量操作,批量修改、添加日志清理工具的配置内容;在不影响生产的情况下不停机用 sshpass 去批量修改基础数据,并使用预留的 reload 功能重载数据;此外还有新增一些比如服务的进程监控的功能进行服务化。

这一系列操作都可以通过 sshpass 进行远程操作,只需几行或几十行 shell脚本就可以做到。最大限度提高效率和不影响产能。
 

二.使用

1.格式:

sshpass  选项    命令

常见选项:

-p   password允许用 -p  参数指定明文密码,然后直接登录远程服务器
-f   filename跟保存密码的文件名,密码是文件内容的第一行
-e 将环境变量SSPASS作为密码
-d   number使用数字作为获取密码的文件描述符

2.操作

先安装 sshpass 软件

① 直接远程连接某台主机

sshpass -p '密码' ssh root@192.168.44.20  (默认为22端口)

② 远程连接指定ssh的端口

        使用ssh访问时,A通过ssh首次连接到B,B会将公钥1(host key)传递给A,在首次链接时,会弹出交互验证B的公钥1是否正确,如果正确则输入yes确认,A将公钥1存入known_hosts文件中,以后A再连接B时,B依然会传递给A一个公钥2,OpenSSH会核对公钥,通过对比公钥1与公钥2 是否相同来进行简单的验证,如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

但是如果程序自动链接ssh远端机器,就需要由程序自动应答这个确认公钥的交互过程。

③ 从密码文件读取文件内容作为密码去远程连接主机

sshpass -f  xxx.txt  ssh  root@192.168.44.20

④ 从远程主机上拉取文件到本地

文件的拉取与上传使用scp参数

拉取文件

命令: sshpass  -p 'password' scp username@ip:/远程文件目录/远程服务器文件/本地文件目录/

上传文件

命令:sshpass  -p 'password' scp /本地路径/文件名 username@ip:/远程服务器目录

⑤ 从文件读取密码、ip、端口

⑥ 想批量操作连接远程服务器,建议使用脚本文件

⑦ 可以添加-o StrictHostKeyChecking=no选项

表示远程连接时不提示是否输入yes/no

也可以直接去配置文件里面修改

vim  /etc/ssh/ssh_config

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值