• python 中sshpass的使用


    如何用SSH连接远程服务器有两种方式

    1.利用远程软件控制:sshclient、Puttty、secureCRT等

    2、终端命令 ssh -p 22 root@服务器ip  密码需要手工交互式输入(22: 端口号 root: 用户名)

        ssh登陆不能在命令行中指定密码。sshpass的出现,解决了这一问题。sshpass用于非交互SSH的密码验证,可以 -p 参数指定明文密码,然后直接登录远程服务器,支持密码从命令行、文件、环境变量中读取。

    其默认没有安装,需要手动安装,方法如下:

    sshpass下载地址:http://sourceforge.net/projects/sshpass/ 下载为一个 tar.gz的压缩包。

    $ tar -zxvf sshpass-1.05.tar.gz

    $ cd sshpass-1.05

    $ ./configure --prefix=/opt/sshpass #指定安装目录

    $ make

    $ make install

    $ cp /opt/sshpass/bin/sshpass /usr/bin/

    输入命令 sshpass 如下提示即安装成功:

    2.用法介绍

    # 免密码登录
    $ sshpass -p password ssh username@host
    sshpass -p A123456 ssh root@192.168.56.102
    #从文件获取密码
    $sshpass -f userpasswd.txt  ssh root@192.168.56.102
    #从环境变量获取密码
     $> export SSHPASS="password"
     $> sshpass -e ssh username@x.x.x.x 
    # 远程执行命令 $ sshpass -p password ssh username@host <cmd> 
    # 通过scp上传文件 $ sshpass -p password scp local_file root@host:remote_file # 通过scp下载文件 $ sshpass -p password scp root@host:remote_file local_file
    # 循环执行多台机器的命令
    for in $(cat /root/1.txt)
    do
    echo $i
    sshpass -p123456 ssh root@$i 'ls -l'
    done
     

    忽略RSA Key检查信息

    第一次认证一般会有RSA key检查的提示:

    The authenticity of host ’10.x.x.x (10.x.x.x)' can't be established.
    RSA key fingerprint is a4:eb:8c:7d:2a:ef:d6:1c:a3:0c:e8:e5:00:d2:eb:60.
    Are you sure you want to continue connecting (yes/no)?

    可以使用-o StrictHostKeychecking=no选项来忽略key检查信息。sshpass -p "$SSH_PASSWD" ssh root@"$host" -o StrictHostKeyChecking=no "$@" 2>/dev/null 

     

  • 相关阅读:
    后台java,前台extjs文件下载
    gridPanel可拖拽排序
    Extjs 获取输入框焦点,并选中值
    java poi对Excel文件加密
    java poi 读取有密码加密的Excel文件
    SSL 与 数字证书 的基本概念和工作原理
    splay树
    树剖版lca
    树链剖分
    kruskal重构树
  • 原文地址:https://www.cnblogs.com/yoyo008/p/9488169.html
Copyright © 2020-2023  润新知