介绍
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@rumenz.com
sshpass -p "4u2tryhack" ssh -o StrictHostKeyChecking=no username@rumenz.com
使用-f选项(密码应该是文件名的第一行):
echo'4u2tryhack' > pass_file
chmod 0400 pass_file
sshpass -f pass_file ssh username@rumenz.com
sshpass -f pass_file ssh -o StrictHostKeyChecking=no username@rumenz.com
使用-e选项(密码应该是文件名的第一行)
SSHPASS='4u2tryhack' sshpass -e ssh username@rumenz.com
SSHPASS ='4u2tryhack' sshpass -e ssh -o StrictHostKeyChecking=no username@rumenz.com
示例2:Rsync
sshpass搭配使用rsync:
SSHPASS='4u2tryhack' rsync --rsh="sshpass -e ssh -l username" /rumenz/ rumenz.com:/opt/rumenz/
上面使用了-e选项,该选项将密码传递给环境变量SSHPASS
我们可以-f像这样使用开关:
rsync --rsh="sshpass -f pass_file ssh -l username" /rumenz/ rumenz.com:/opt/rumenz/
示例3:Scp
使用sshpass与scp:
scp -r /var/www/html --rsh="sshpass -f pass_file ssh -l user" rumenz.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 root@rumenz.com
分享、在看与点赞
只要你点,我们就是胖友
来自: Linux之sshpass命令https://mp.weixin.qq.com/s?__biz=Mzk0NTQ3OTk3MQ==&mid=2247486380&idx=1&sn=d123b155a301f72c972edd0514000cfa&chksm=c31583e0f4620af66cf7f294baa381542b4adaa980ed594a2932d3aaad9ac23985fdf420cd54&token=355315523&lang=zh_CN#rd