将文件连贯并传输到近程零碎是系统管理员始终在做的事件。SSH是Linux平台上许多系统管理员应用的根本工具。SSH反对两种身份验证模式:
- 1.明码认证
- 2.公钥认证
公钥认证被认为是这两种办法中最平安的模式,只管明码认证是最风行和最容易的。然而,应用明码验证时,总是要求用户输出明码。这种反复是乏味的。此外,SSH在外壳程序脚本中应用时也须要手动干涉。如果在应用SSH明码身份验证时须要自动化,那么一个简略的工具sshpass
必不可少。
什么是sshpass
该
sshpass
实用程序旨在应用键盘交互明码身份验证模式运行SSH ,但以非交互方式运行。SSH应用间接TTY拜访来确保明码的确是由交互式键盘用户收回的。
sshpass
在专用的TTY中运行SSH,让SSH认为它是从交互式用户那里获取明码的。
装置sshpass
您能够sshpass
应用以下简略命令进行装置:
> yum install sshpass -y
应用sshpass
在sshpass
选项之后指定要运行的命令。通常,该命令ssh
带有参数,但也能够是任何其余命令。不过,目前SSH明码提醒已硬编码为sshpass
。
sshpass [-f filename | -d num | -p password | -e] [options]
命令选项
-p 明码 明码在命令行中给出。 -f 文件名 明码是文件名的第一行。 -d number number是sshpass从运行程序继承的文件描述符。从关上的文件描述符中读取明码。 -e 明码来自环境变量"SSHPASS"。
用于sshpass
通过SSH登录到近程服务器。假如明码为4u2tryhack
。以下是应用sshpass选项的几种办法。
应用-p
(这是最不平安的抉择,不应应用):
> sshpass -p "4u2tryhack" ssh username@rumenz.com
-p
在shell脚本中应用时,该选项如下所示:
> 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
-f
在shell脚本中应用以下选项:
> sshpass -f pass_file ssh -o StrictHostKeyChecking=no username@rumenz.com
应用-e
选项(明码应该是文件名的第一行)
$ SSHPASS='4u2tryhack' sshpass -e ssh username@rumenz.com
-e
在shell脚本中应用时,该选项如下所示:
> 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
您也能够应用
sshpass
GPG加密的文件。应用该-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
原文链接:https://rumenz.com/rumenbiji/...
微信公众号:入门小站