如何使用sshpass在Linux中进行SSH密码自动化

您可以sshpass使用以下简单命令进行安装:
# yum install sshpass
在sshpass选项之后指定要运行的命令。通常,该命令ssh带有参数,但也可以是任何其他命令。不过,目前SSH密码提示已硬编码为sshpass。
该sshpass命令的概要描述如下:
sshpass [-ffilename|-dnum|-ppassword|-e] [options] command arguments
其中:
-ppassword
密码在命令行中给出。
-ffilename
密码是文件文件名的第一行。
-dnumber
number是sshpass从运行程序继承的文件描述符。从打开的文件描述符读取密码。
- e
密码取自环境变量“SSHPASS”。
例子
为了更好地理解的价值和用途sshpass,我们来看一些带有几个不同实用程序的示例,包括SSH,Rsync,Scp和GPG。
示例1:SSH
用于sshpass通过SSH登录到远程服务器。假设密码为!4u2tryhack。以下是使用sshpass选项的几种方法。
答:使用-p(这是最不安全的选择,不应使用):
$ sshpass -p !4u2tryhack ssh username@host.example.com
-p在shell脚本中使用时,该选项如下所示:
$ sshpass -p !4u2tryhack ssh -o StrictHostKeyChecking=no username@host.example.com
B.使用-f选项(密码应该是文件名的第一行):
$ echo '!4u2tryhack' >pass_file
$ chmod 0400 pass_file
$ sshpass -f pass_file ssh username@host.example.com
-f在shell脚本中使用以下选项:
$ sshpass -f pass_file ssh -o StrictHostKeyChecking=no username@host.example.com
C.使用-e选项(密码应该是文件名的第一行):
$ SSHPASS='!4u2tryhack' sshpass -e ssh username@host.example.com
-e在shell脚本中使用时,该选项如下所示:
$ SSHPASS='!4u2tryhack' sshpass -e ssh -o StrictHostKeyChecking=no username@host.example.com
示例2:Rsync
使用sshpass有rsync:
$ SSHPASS='!4u2tryhack' rsync --rsh="sshpass -e ssh -l username" /custom/ host.example.com:/opt/custom/
上面使用的-e选项将密码传递给环境变量SSHPASS
我们可以-f像这样使用开关:
$ rsync --rsh="sshpass -f pass_file ssh -l username" /custom/ host.example.com:/opt/custom/
示例3:Scp
使用sshpass与scp:
$ scp -r /var/www/html/example.com --rsh="sshpass -f pass_file ssh -l user" host.example.com:/var/www/html
示例4:GPG
您也可以使用sshpassGPG加密的文件。使用该-f开关时,参考文件为纯文本格式。让我们看看如何使用GPG加密文件并使用它。
首先,创建一个文件,如下所示:
$ echo '!4u2tryhack' > .sshpasswd
接下来,使用以下gpg命令加密文件:
$ gpg -c .sshpasswd
删除包含明文的文件:
$ rm .sshpasswd
最后,如下使用它:
$ gpg -d -q .sshpassword.gpg > pass_file; sshpass -f pass_file ssh user@srv1.example.com
sshpass是一个简单的工具,对系统管理员很有帮助。无论如何,这不会覆盖SSH身份验证的最安全形式,即公钥身份验证。但是,sshpass也可以将其添加到sysadmin工具箱中。

A5互联https://www.a5idc.net/

原文地址:https://www.cnblogs.com/a5idc/p/13594129.html