SSHPASS-Linux命令之非交互SSH密码验证
2018-11-29 本文已影响0人
Minato666
我们知道在Linux上SSH命令和SCP是不能在命令中指定密码的,这样就导致了一个问题,比如我们本地通过代码使用连接到远程机器,想把一个文件copy到远程的另外一台机器,这个时候我们肯定想到要使用SCP命令,但是编写的时候遇到了一个问题,scp命令无法指定命令,它是交互式的,需要你手动输入密码,这样才能够将文件拷贝到另外一台机器。而SSHPASS恰好解决这个问题。
如果Linux上安装了python,那么我们可以使用yum install SSHPASS来这个命令。其用法如下:
[root@iZbp1hfxz81ar5zel0qsefZ ~]# sshpass -h
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
前面我们提到的问题就可以通过下面这个命令来解决:
sshpass -p 1234567 scp /root/* root@192.1681.1.1:/root/
如果我们想要通过ssh在另一台远程机器运行命令则:
sshpass -p123456 ssh root@192.168.1.1 'ls -l'
这样通过SSHPASS大大的简化了脚本的编写。