美文网首页
sshpass实现shell脚本非交互密码验证

sshpass实现shell脚本非交互密码验证

作者: 沉思的雨季 | 来源:发表于2021-03-02 14:39 被阅读0次

    1、sshpass的简介

    OpenSSH 自带的 ssh 客户端程序,默认不允许以非交互的方式传递密码,所以需要远程登录服务器进行批处理就无法进行。sshpass 的出现,解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器。

    2、sshpass安装

    源码下载地址:https://sourceforge.net/projects/sshpass/files/

    下载源码包,执行以下步骤安装:

    [root@192.168.1.20 ~]#tar -zxvf sshpass-1.05.tar.gz
    [root@192.168.1.20 ~]#cd sshpass-1.05
    [root@192.168.1.20 ~]#./configure
    [root@192.168.1.20 ~]#make && make install
    

    安装完成后,输入“sshpass -V” 出现版本信息即安装成功。

    3、命令操作实例

    实例1:直接远程连接某台主机

    命令:sshpass -p '密码' ssh root@192.168.1.100     #默认为22端口
    

    实例2:远程连接指定ssh的端口

    命令:sshpass -p '密码' ssh -p 1000 root@192.168.1.100      #指定ssh连接端口为1000
    

    实例3:从密码文件读取文件内容作为密码去远程连接主机

    命令:sshpass -f pwd.txt  ssh root@192.168.1.100      #指定从pwd.txt读取密码
    

    实例4:从远程主机上拉取文件到本地

    命令: sshpass -p '123456' scp root@192.168.1.100:/home/test.txt ./     #从远端复制文件到本地,还可以加参数 -q 去掉进度显示
    

    实例5:远程ssh到目标机器执行命令

    命令: sshpass -p '密码' root@192.168.1.100 'ifconfig; ping 127.0.0.1 -c 10; top -b -n 1; sleep 5'   #shell命令要在sshpass命令一行
    

    实例6:远程连接时不提示是否输入yes/no

    命令:sshpass -p '密码' ssh -o StrictHostKeyChecking=no root@192.168.1.100 
    

    相关文章

      网友评论

          本文标题:sshpass实现shell脚本非交互密码验证

          本文链接:https://www.haomeiwen.com/subject/muvtqltx.html