无需私钥的pssh的安装使用
普通的pssh需要使用私钥验证,但是大多数情况下我们并不想将某一台机器的私钥推送至所有机器。
1. wget https://github.com/knktc/insecure_pssh/archive/master.zip
或者IE打开https://github.com/knktc/insecure_pssh 然后点击zip即可下载
2. 将master(insecure_pssh-master.zip) 拷贝至/usr/local
3. unzip master
4. cd insecure_pssh-master
5. 赋予其执行权限:
chmod +x pscp pslurp pssh
6. 直接使用即可,无需安装了。
说明:
1.host.txt里面格式如下:
用户名:密码@主机
root:redhat@10.9.9.2
root:jyddy123@10.9.9.101
root:huangjiang0@10.9.9.13
或者 主机 用户名 密码
10.9.9.2 root redhat
10.9.9.101 root jyddy123
2.使用参数说明:
pssh参数
-h 执行命令的远程主机列表 或者 -H 文件内容格式[user@]host[:port]
-l 远程机器的用户名
-p 一次最大允许多少连接
-o 输出内容重定向到一个文件
-e 执行错误重定向到一个文件
-t 设置命令执行的超时时间
-A 提示输入密码并且把密码传递给ssh
-O 设置ssh参数的具体配置,参照ssh_config配置文件
-x 传递多个SSH 命令,多个命令用空格分开,用引号括起来
-X 同-x 但是一次只能传递一个命令
-i 显示标准输出和标准错误在每台host执行完毕后
-I 读取每个输入命令,并传递给ssh进程 允许命令脚本传送到标准输入
范例:
(1)将本地文件传送至ip.txt里面主机的/tmp文件夹下
[root@zuozhang002 insecure_pssh-master]# ./pscp -h /tmp/ip.txt zzzzzzzzzzzzz /tmp/
[1] 07:25:09 [SUCCESS]
[2] 07:25:10 [SUCCESS]
[3] 07:25:12 [SUCCESS]
(2)显示出ip.txt里面主机的uptime
[root@zuozhang002 insecure_pssh-master]# ./pssh -h /tmp/ip.txt -i uptime
[1] 07:28:46 [SUCCESS]
14:30:13 up 68 days, 20:11, 0 users, load average: 0.00, 0.02, 0.00
[2] 07:28:46 [SUCCESS]
07:28:51 up 44 days, 50 min, 1 user, load average: 0.01, 0.03, 0.00
[3] 07:28:46 [SUCCESS]
07:28:47 up 64 days, 18:04, 0 users, load average: 0.05, 0.05, 0.01
(3)从远程主机收集文件
[root@zuozhang002 insecure_pssh-master]# ./pslurp -h /tmp/ip.txt -L /zuo ~/anaconda-ks.cfg an.cfg
[1] 07:37:38 [SUCCESS]
[2] 07:37:38 [SUCCESS]
[3] 07:37:39 [SUCCESS]
-L 选项指定创建子目录的位置
-r表示递归子目录
~/anaconda-ks.cfg 为远程服务器上的目录
an.cfg 为拷贝到 -L 指定的本地目录下面的目录名
查看文件:
[root@zuozhang002 zuo]# ls /zuo/*
/zuo/10.9.9.101:
an.cfg
/zuo/10.9.9.13:
an.cfg
/zuo/10.9.9.2:
an.cfg