cchao1024 · 2019年10月14日

终端-Linux命令之非交互SSH密码验证-Sshpass

Sshpass是使用SSH所谓的“交互式键盘密码身份验证”以非交互方式执行密码身份验证的工具

image-20191009094225271

通俗来说就是 使用ssh密码登录 是需要在连接时手动输入密码的,没办法明文连接,如下图,需要交互的输入密码。

image-20191009094651029

而Sshpass 做的就是通过明文的方式使用ssh,并带来了一些更新鲜的特性

安装

  • macOS - brew下载安装

    # 安装命令
    brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
    # 连接到/usr/local/bin (如果提示 command not found)
    cd /usr/local/bin
    ln -s sshpass ../Cellar/sshpass/1.06/bin/sshpass
  • Debian - apt install sshpass
  • Centos - yum install sshpass
  • 源码安装

    $ wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz
    $ tar -xvf sshpass.tar.gz
    $ cd sshpass-1.06
    $ ./configure
    # sudo make install 

使用

# 简单使用,使用密码 XXX 连接Ip的默认ssh
sshpass -p "XXX" ssh user@IP

image-20191009092431415

高级

  • 远程连接指定ssh的端口
    sshpass -p {密码} ssh -p ${端口} {用户名}@{主机IP}
  • 从密码文件读取文件内容作为密码去远程连接主机
    sshpass -f ${密码文本文件} ssh {用户名}@{主机IP}
  • 从远程主机上拉取文件到本地
    sshpass -p {密码} scp {用户名}@{主机IP}:${远程主机目录} ${本地主机目录}
  • 将主机目录文件拷贝至远程主机目录
    sshpass -p {密码} scp ${本地主机目录} {用户名}@{主机IP}:${远程主机目录}
  • 远程连接主机并执行命令
    sshpass -p {密码} ssh -o StrictHostKeyChecking=no {用户名}@{主机IP} 'rm -rf /tmp/test'

    -o StrictHostKeyChecking=no :忽略密码提示
    image-20191009093654515

更多

更多优秀工具,请关注微信公众号获取

wx

本文由博客一文多发平台 OpenWrite 发布!
推荐阅读
关注数
0
文章数
16
人生苦短,优雅办公
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息