在性能测试的过程中,通常会遇到系统集群部署、或者测试过程中涉及多个系统,这时候需要监控多台Linux主机,如果能在一台主机上实现监控多台主机,效率可以提升很多哦。
这里先简单介绍一下多台主机建立信任的方法:
操作系统:CentOS 6.5
主机IP:
10.10.10.1 server1
10.10.10.2 server2
10.10.10.3 server3
以server1为例,3台主机操作相同,以root用户登录主机
[root@server1 ~]# useradd -d /home/nmon -g users -m nmon
将nmon用户密码设置为nmon
[root@server1 ~]# passwd nmon
这里先以server1和server2为例:
10.10.10.1 server1
10.10.10.2 server2
server1上的操作:使用nmon用户登录server1,生成一对密钥,并将公钥文件上传到server2;
[root@server1 ~]# su - nmon
[nmon@server1]$ ssh-keygen -t rsa
Enter file in which to save the key(/home/nmon/.ssh/id_rsa): /home/nmon/.ssh/id_rsa
在提示保存私钥(key)和公钥(public key)的位置时,使用默认值/home/nmon/.ssh/id_rsa;
在提示是否需要私钥密码(passphrase)时,直接敲回车,即不使用私钥密码。
之后,将生成一对密钥,id_rsa(私钥文件)和id_rsa.pub(公钥文件),保存在/home/nmon/.ssh/目录下。
[nmon@server1]$ scp ~/.ssh/[email protected]:/home/nmon/
说明:上传完成后,server2的/home/nmon/目录下将有id_rsa.pub文件,即server1的公钥文件
server2上的操作:使用nmon用户登录server2,生成一对密钥,并将公钥文件上传到server1;
[root@server2 ~]# su - nmon
[nmon@server2]$ ssh-keygen -t rsa
Enter file in which to save the key(/home/nmon/.ssh/id_rsa): /home/nmon/.ssh/id_rsa
在提示保存私钥(key)和公钥(public key)的位置时,使用默认值/home/nmon/.ssh/id_rsa;
在提示是否需要私钥密码(passphrase)时,直接敲回车,即不使用私钥密码。
之后,将生成一对密钥,id_rsa(私钥文件)和id_rsa.pub(公钥文件),保存在/home/nmon/.ssh/目录下
[nmon@server2]$ scp ~/.ssh/[email protected]:/home/nmon/
说明:上传完成后,server1的/home/nmon/目录下将有id_rsa.pub文件,即server2的公钥文件
1.nmon用户登录server1,将server2的公钥(/home/nmon/id_rsa.pub)添加到server1的authorized_keys 文件中
[nmon@server1 ~]$ cat ~/id_rsa.pub >>~/.ssh/authorized_keys
2.nmon用户登录server2,将server1的公钥(/home/nmon/id_rsa.pub)添加到server2的authorized_keys 文件中
[nmon@server2 ~]$ cat ~/id_rsa.pub >>~/.ssh/authorized_keys
分别使用root用户登录server1和server2,重启ssh服务
[root@server1 ~]# /etc/init.d/sshd restart
[root@server2 ~]# /etc/init.d/sshd restart
在server2上测试,是否可以不需要输入用户密码就可以执行命令
ssh 10.10.10.1 date
在server1上测试,是否可以不需要输入用户密码就可以执行命令
ssh 10.10.10.2 date
10.10.10.1 server1
10.10.10.2 server2
10.10.10.3 server3
第二小结中,server1和server2已经成功建立相互信任,现在是需要建立多台主机信任。这里提供一个比较方便的办法。
如果有server4,server5,server6都可以快速建立相互信任。
这里先以server1作为主信任主机,其他主机都需要与它相互信任。
我们先将server1和server3建立相互信任。
参考前面server1与server2建立信任的过程,其中server1的密钥文件不需要重复生成,只需要生成server3的一对密钥,并将对方主机的公钥添加到本机的authorized_keys 文件中即可。
过程这里略过。
此时server1与server2,server3都已建立相互信任,但server2与server3并没有相互信任。
[nmon@server1 ~ ]$ cat~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtDA7NMW5R9iZd9XcRMAV35GUNX6Xrw8HD6yaVm1lSrELxC+pDLTSPxB7jNViAvgZg1A4dzvfpg2IxODF66pJbqEFZ2MscLzymBs66kgMxLBYeS3mUKqwJPrjnm48Oipc68XUMzwo4QJ2/rr77ryh0JSc95KtSp8zbyyxKwtfD05OH5uGplEBC5EGwL/NqO065EUPCDLbxLk5tZbsdd+6KoyyvcoeCWq7daAzieSeIXx/Y2yJfQDWzwyDFsAXb9qcIN3yQNMFAOZDQfYMm43sX2TNEWnADyOe29jPtMmQPTZ0WKmMYGCZYjXrmVyu9zXo9j5EkSpzX080hgKdrW+jVw==nmon@server2
ssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEAuHm4tI4wzUlyWcqbcjsniDabPSP31qFPKhdhB/4Eo46gBqY9mvYMLQBXKidBa+HCbZk97lJdxDbWXv8p26/aZ4kDV+r/DWYUyU5Xx06O9xXirpxg5CD2MpJ0yvln+UM8r1fNkBKUz2hJ//SKRRQ86OqjZ6/8H+2Ioiucgo1VYKzFHaZaRT39jmGhp4V4O/YHfS0JHcceHH7b7FLA4qgGGovAKuI6jJkcKUW6uV291zIdLiwztTt5JwQ2hxN1a/Dx0BtUDJsFY/cjJlIOgiVm79lmV5MazXUNw5Ic/IqqwHW1UedEPcO4syybqldSRoizFCn5MENujqKLFbo1qRKimw==nmon@server3
[nmon@server1 ~ ]$ cat ~/.ssh/id_rsa>> ~/.ssh/authorized_keys
再次查看authorized_keys文件
[nmon@server1 ~ ]$ cat~/.ssh/authorized_keys
ssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEAtDA7NMW5R9iZd9XcRMAV35GUNX6Xrw8HD6yaVm1lSrELxC+pDLTSPxB7jNViAvgZg1A4dzvfpg2IxODF66pJbqEFZ2MscLzymBs66kgMxLBYeS3mUKqwJPrjnm48Oipc68XUMzwo4QJ2/rr77ryh0JSc95KtSp8zbyyxKwtfD05OH5uGplEBC5EGwL/NqO065EUPCDLbxLk5tZbsdd+6KoyyvcoeCWq7daAzieSeIXx/Y2yJfQDWzwyDFsAXb9qcIN3yQNMFAOZDQfYMm43sX2TNEWnADyOe29jPtMmQPTZ0WKmMYGCZYjXrmVyu9zXo9j5EkSpzX080hgKdrW+jVw==nmon@server2
ssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEAuHm4tI4wzUlyWcqbcjsniDabPSP31qFPKhdhB/4Eo46gBqY9mvYMLQBXKidBa+HCbZk97lJdxDbWXv8p26/aZ4kDV+r/DWYUyU5Xx06O9xXirpxg5CD2MpJ0yvln+UM8r1fNkBKUz2hJ//SKRRQ86OqjZ6/8H+2Ioiucgo1VYKzFHaZaRT39jmGhp4V4O/YHfS0JHcceHH7b7FLA4qgGGovAKuI6jJkcKUW6uV291zIdLiwztTt5JwQ2hxN1a/Dx0BtUDJsFY/cjJlIOgiVm79lmV5MazXUNw5Ic/IqqwHW1UedEPcO4syybqldSRoizFCn5MENujqKLFbo1qRKimw==nmon@server3
ssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEAwm2u2U1vwFxCJiYn688peVHNiYZn+NgtckkuI/pNyNcpIhDc9rUHgryCNG2HvcaHijFo1tbNHDpMGoq7M80DbPO7c9Sm0LE4jj1vf/4CnuUbWD+fzODndoMOkEeW7J1i8+MuaKxf/9MSNWKCeZkymeQDiNK1GjL1uI7oATgfYU1taWY3DJAk3cM6+losD33IdBJais+9T/eSUBjFn2hVIfzvJ2LdTzl6o16yVshNWrEE2MbxbFprySypAppiEceGlBp8Gm/F53bKPm5sUkcaPbVnjIx1n/UhqOmoGf3iPlpiVf5L1zZdEdCQ93D91FBnMFI76lmL3wRL0x2HBmv3bw==nmon@server1
如果需要建立server2与server3的相互信任,将server1的authorized_keys分别替换server2与server3的authorized_keys文件即可。
[nmon@server1~]$ scp ~/.ssh/[email protected]:/home/nmon/.ssh/authorized_keys
[nmon@server1~]$ scp ~/.ssh/[email protected]:/home/nmon/.ssh/authorized_keys
[root@server2 ~]# /etc/init.d/sshd restart
[root@server3 ~]# /etc/init.d/sshd restart
验证server2与server3主机信任是否已成功建立
在server2上测试,是否可以不需要输入用户密码就可以执行命令
ssh 10.10.10.3 date
在server3上测试,是否可以不需要输入用户密码就可以执行命令
ssh 10.10.10.2 date