介绍
sshpass是一个工具,用于通过SSH连接到远程服务器时自动输入密码。
它允许您在命令行中指定密码,以便在建立SSH连接时自动进行身份验证。
安装
# 以centos为例
yum install sshpass -y
使用方法
sshpass [-f filename | -d num | -p password | -e] [options]命令选项
-f filename | 从文件中获取要使用的密码 |
-d number | 使用number作为获取密码的文件描述符 |
-p password | 提供密码作为参数(安全性不明智) |
-e | 密码来自环境变量 “SSHPASS” |
不带参数 | password将从stdin中获取 |
-P prompt | sshpass搜索哪个字符串来检测密码提示 |
-v | 打印版本信息 |
-h | 显示帮助 |
-V | 打印版本信息 |
示例
用于sshpass通过SSH登录到远程服务器,假设密码为4u2tryhack。
以下是使用sshpass选项的几种方法。
sshpass -p "4u2tryhack" ssh username@bunian.cn
sshpass -p "4u2tryhack" ssh -o StrictHostKeyChecking=no username@bunian.cn
使用-f选项(密码应该是文件名的第一行):
echo'4u2tryhack' > pass_file
chmod 0400 pass_file
sshpass -f pass_file ssh username@bunian.cn
sshpass -f pass_file ssh -o StrictHostKeyChecking=no username@bunian.cn
使用-e选项(密码应该是文件名的第一行)
SSHPASS='4u2tryhack' sshpass -e ssh username@bunian.cn
SSHPASS ='4u2tryhack' sshpass -e ssh -o StrictHostKeyChecking=no username@bunian.cn
示例2:Rsync
sshpass搭配使用rsync:
SSHPASS='4u2tryhack' rsync --rsh="sshpass -e ssh -l username" /bunian/ bunian.cn:/opt/bunian/
上面使用了-e选项,该选项将密码传递给环境变量SSHPASS
我们可以-f像这样使用开关:
rsync --rsh="sshpass -f pass_file ssh -l username" /bunian/ bunian.cn:/opt/bunian/
示例3:Scp
使用sshpass与scp:
scp -r /var/www/html --rsh="sshpass -f pass_file ssh -l user" bunian.cn:/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 root@bunian.cn
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END