sshpass-Linux命令之非交互SSH密码验证

参考网址:https://www.cnblogs.com/chenlaichao/p/7727554.html

ssh登陆不能在命令行中指定密码。sshpass的出现,解决了这一问题。sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码。

它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。

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

下载网址:https://sourceforge.net/projects/sshpass/files/
[root@db130 ~]# ll /root/sshpass-1.06.tar.gz
-rw-r--r-- 1 root root 112205 Mar 25 15:45 /root/sshpass-1.06.tar.gz
[root@db130 ~]# tar -zxf sshpass-1.06.tar.gz
[root@db130 ~]# cd sshpass-1.06
[root@db130 sshpass-1.06]# ./configure --prefix=/usr/local/sshpass/
[root@db130 sshpass-1.06]# make
[root@db130 sshpass-1.06]# make install
[root@db130 sshpass-1.06]# cp /usr/local/sshpass/bin/sshpass /usr/bin/ # 出现如下,表明安装成功
[root@db130 sshpass-1.06]# sshpass
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
-f filename Take password to use from file
-d number Use number as file descriptor for getting password
-p password Provide password as argument (security unwise)
-e Password is passed as env-var "SSHPASS"
With no parameters - password will be taken from stdin -P prompt Which string should sshpass search for to detect a password prompt
-v Be verbose about what you're doing
-h Show help (this screen)
-V Print version information
At most one of -f, -d, -p or -e should be used
[root@db130 sshpass-1.06]# # 用法简介: -p password # 后接密码
[root@db130 ~]# sshpass -p '12345678' ssh root@192.168.142.128 'ifconfig eth0'
eth0 Link encap:Ethernet HWaddr 00:0C:29:B0:62:1B
inet addr:192.168.142.128 Bcast:192.168.142.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb0:621b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5915 errors:0 dropped:0 overruns:0 frame:0
TX packets:533 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:407552 (398.0 KiB) TX bytes:111865 (109.2 KiB) [root@db130 ~]# -f filename #后跟保存密码的文件名,密码是文件内容的第一行。
[root@db130 ~]# cat 1.txt
12345678
[root@db130 ~]# sshpass -f 1.txt ssh root@192.168.142.128
Last login: Mon Mar 25 22:36:05 2019 from 192.168.142.1
[root@xbj128 ~]# exit
logout
Connection to 192.168.142.128 closed. -e #将环境变量SSHPASS作为密码,是临时的
[root@db130 ~]# -e #将环境变量SSHPASS作为密码^C
[root@db130 ~]# export SSHPASS=12345678
[root@db130 ~]# sshpass -e ssh root@192.168.142.128 "ifconfig eth0"
eth0 Link encap:Ethernet HWaddr 00:0C:29:B0:62:1B
inet addr:192.168.142.128 Bcast:192.168.142.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb0:621b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6027 errors:0 dropped:0 overruns:0 frame:0
TX packets:588 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:419116 (409.2 KiB) TX bytes:121683 (118.8 KiB) # 传出本地文件到远程
[root@db130 ~]# sshpass -f 1.txt scp /root/sshpass-1.06.tar.gz root@192.168.142.128:/root/ # 拉取远程文件到本地
[root@db130 ~]# sshpass -f 1.txt scp root@192.168.142.128:/root/mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz /tmp/

sshpass-Linux命令之非交互SSH密码验证的更多相关文章

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

    Sshpass是使用SSH所谓的"交互式键盘密码身份验证"以非交互方式执行密码身份验证的工具 通俗来说就是 使用ssh密码登录 是需要在连接时手动输入密码的,没办法明文连接,如下图 ...

  2. 【转】sshpass-Linux命令之非交互SSH密码验证

      sshpass-Linux命令之非交互SSH密码验证 ssh登陆不能在命令行中指定密码.sshpass的出现,解决了这一问题.sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次 ...

  3. sshpass非交互SSH密码验证

    1.yum安装yum install sshpass -y1.1编译安装yum install wget -ywget http://sourceforge.net/projects/sshpass/ ...

  4. sshpass: 用于非交互的ssh 密码验证

    ssh登陆不能在命令行中指定密码,也不能以shell中随处可见的,sshpass 的出现,解决了这一问题.它允许你用 -p 参数指定明文密码,然后直接登录远程服务器. 它支持密码从命令行,文件,环境变 ...

  5. Centos 打开ssh 密码验证 和 root 登录

    # 1 打开系统的密码验证功能: vim /etc/ssh/sshd_config #允许使用密码登录(注释此行 就是允许证书登录) PasswordAuthentication yes # 2 打开 ...

  6. Linux低权限用户记录ssh密码

    0x01 场景 现在有个攻击场景,就是你拿到了linux外网服务器的webshell,要做内网渗透前肯定要收集信息.其中可以做的一个工作是重新编译ssh来记录管理员的密码信息,信息可以用来撞其他机器的 ...

  7. Linux 命令 - wget: 非交互式网络下载器

    命令格式 wget [option]... [URL]... 命令参数 启动选项 -V, --version 打印版本信息 -h, --help 打印帮助信息 日志和输入文件选项 -o logfile ...

  8. Linux命令(五)免密码远程登录和配置别名

    1. ssh-keygen 2. ssh-copy-id -p port user@remote .ssh中建立并编辑config文件 原来需要 ssh -p ubuntu@xxx.xxx.xxx 现 ...

  9. 常见Linux命令(非文件操作)

    可见 http://man.linuxde.net/systemctl 非常详尽

随机推荐

  1. 【Android】用Cubism 2制作自己的Live2D——android sdk样本的下载与Android studio编译!

    前言- 在浏览Live2d说明书的时候我无意中发现了一个有趣的东西,就是android sdk中居然自带动态壁纸!那就让我们来试试吧,说明书此页的网址连接——中文版||日文版 Android开发所必需 ...

  2. 解决SVN Cleanup错误: Failed to run the WC DB work queue associated with

    [内容来源自https://www.cnblogs.com/ANCAN-RAY/p/8961832.html] 在svn本地目录更新文件夹时,更新失败. 然后svn提示我,让我cleanup一下,于是 ...

  3. JavaScript(四)变量

    变量的声明 在JavaScript程序中,使用一个变量之前应当使用关键字var进行声明,如下所示:var num;var sum; 也可以写成var num,sum,avg;如果只是声明变量而没有给变 ...

  4. Win7下emacs简单配置

    ;;win7下.emacs在C:\Users\用户名\AppData\Roaming目录下 在.emacs文件中添加 ;; cancel welcome page取消欢迎界面(setq inhibit ...

  5. Fix: Unable to terminate process ‘Access is denied’ 杀进程,关服务

    https://appuals.com/fix-unable-to-terminate-process-access-is-denied/ 我 Process Hacker (方法3),成功杀掉: 阿 ...

  6. 记录Html+Css流程表格

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 解决CSDN需要登录才能看全文

    本来今天学习遇到一些问题,在网上翻着博客,突然在csdn里就提示要登录才能看全文. 看了下页面源码博客内容已经拿到本地了,只是加了一层罩,也是挺无语的,暂时先用这种方法解决吧: (function() ...

  8. (win10 docker desktop) docker build 时 alpine 无法安装软件问题的解决

    使用 alpine 作为 docker 基础镜像时,运行 apk add ..... 遇到如下错误: WARNING: Ignoring http://dl-cdn.alpinelinux.org/a ...

  9. 《JAVA程序设计》_第七周学习总结

    一.学习内容 1.String类--8,1知识 Java专门提供了用来处理字符序列的String类.String类在java.lang包中,由于java.lang包中的类被默认引入,因此程序可以直接使 ...

  10. 分享收集的WebGL 3D学习资源

    大家好,我在本文中分享了我收集的WebGL 3D相关的博客.书籍.教程.demo等内容,希望对大家学习WebGL和3D有所帮助,谢谢- 相关博客 Wonder技术 Wonder是我们的产品,包含Web ...