Linux sshpass命令的用法

介绍

sshpass是一个工具,用于通过SSH连接到远程服务器时自动输入密码。

它允许您在命令行中指定密码,以便在建立SSH连接时自动进行身份验证。

图片[1]-Linux sshpass命令的用法-不念博客

安装

# 以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 promptsshpass搜索哪个字符串来检测密码提示
-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