【shell】CentOS7.x上sshpass的安装使用

【shell】CentOS7.x上sshpass的安装使用,第1张

OpenSSH 自带的 ssh 客户端程序(也就是 ssh命令)默认不允许你以非交互的方式传递密码

很多时候我们在确定安全的情况下,对ssh的交互登录"深恶痛绝",所以就需要进行免密登录。

ssh登陆不能在命令行中指定密码,sshpass的出现,解决了这一问题。

sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码(嫌悄岩本机known_hosts文件中有的主机才能生效)。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。

ssh命令, 没有指定密码的参数. 以至于在脚本中使用运扒ssh命令的时候, 必须手动输入密码, 才能继续执行. 这样使得脚本的自动化执行变得很差, 尤其当ssh对应的机器数很多的时候, 会令人抓狂.使用非交互式样有两种方式: 一种借助expect脚本, 一种借助sshpass来实现。

# wget https://nchc.dl.sourceforge.net/project/sshpass/sshpass/1.06/sshpass-1.06.tar.gz

# tar  zxf sshpass-1.06.tar.gz

# cd sshpass-1.06

# ./configure  --prefix=/usr/local/

# make &&make install

# yum -y install sshpass

# yum info sshpass

注:如果用rpm的方式安装ansible,sshpass是作为依赖安装的。

# sshpass -h

# sshpass -p "123456" ssh   -o 'StrictHostKeyChecking=no'    root@192.168.1.100

# sshpass -p "123456" ssh  -o 'StrictHostKeyChecking=no'    root@192.168.1.100   -v

注:第一次登陆务必加上   -o 'StrictHostKeyChecking=no'   选项,或者保险起见,每次加上

non-interactive ssh password auth

https://nchc.dl.sourceforge.net/project/sshpass/sshpass/1.06/sshpass-1.06.tar.gz

sshpass 用法举例

https://www.cnblogs.com/nf01/articles/10756100.html

Linux ssh命令芹御详解

https://www.cnblogs.com/ftl1012/p/ssh.html

sshpass的使用方法

https://www.cnblogs.com/misswangxing/p/10637718.html

用expect做服务器的批量互信

https://www.jianshu.com/p/632e7efb59f5

centos安装sshpass,首先需要安装epel源

First, enable EPEL repo and type the following yum command:

$ sudo yum install sshpass

测试

ssh登录主机名为server.example.com 密码为: t@uyM59bQ:

$ sshpass -p 't@uyM59bQ' ssh username@server.example.com

在脚并伍野本中需要禁用host key检查(一般这样用)

$ sshpass -p 't@uyM59bQ' ssh -o StrictHostKeyChecking=no username@server.example.com

语绝喊法为:

SSHPASS='t@uyM59bQ' sshpass -e ssh vivek@server42.cyberciti.biz

SSHPASS='t@uyM59bQ' sshpass -e ssh vivek@server42.cyberciti.biz date

SSHPASS='t@uyM59bQ' sshpass -e ssh vivek@server42.cyberciti.biz w

SSHPASS='t@uyM59bQ' sshpass -e ssh -o StrictHostKeyChecking=no vivek@server42.cyberciti.biz

sshpass -f fileNameHere ssh user@server

步骤如下:

$ echo 'myPassword' >myfile

$ chmod 0400 myfile

$ sshpass -f myfile ssh vivek@server42.cyberciti.biz

Run rsync over SSH using password authentication, passing the password on the command line:

$ rsync --rsh="sshpass -p myPassword ssh -l username" server.example.com:/var/www/html/橘毕 /backup/

或者

$ SSHPASS='yourPasswordHere' rsync --rsh="sshpass -e ssh -l username" server.example.com:/var/www/html/ /backup/

How do I use sshpass with gpg encrypted file?

First, create a file as follows:(步骤如下)

$ echo 'mySshPasswordHere' >.sshpassword

Now, encrypt a file using gpg command:

$ gpg -c .sshpassword

$ rm .sshpassword

Finally, use it as follows:

$ gpg -d -q .sshpassword.gpg >fifosshpass -f fifo ssh vivek@server1.cyberciti.biz

查看sshpass的帮助如下:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12434641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存