部署环境:
准备两台(或两台以上)CentOS 6.7 X86_64服务器
其中IP地址为10.0.0.7为SSHKey分发机
1、每台服务器创建用户wanyuetian,并创建密码123456
[root@lnmp01 ~]# useradd wanyuetian [root@lnmp01 ~]# echo 123456|passwd --stdin wanyuetian Changing password for user wanyuetian. passwd: all authentication tokens updated successfully.
2、在分发机(10.0.0.7)创建密钥对
[root@nfs-server scripts]# su - wanyuetian [wanyuetian@nfs-server ~]$ ssh-keygen -t dsa #一路回车 [wanyuetian@nfs-server ~]$ ls -l .ssh/ total 8 -rw------- 1 wanyuetian wanyuetian 672 Oct 22 16:07 id_dsa -rw-r--r-- 1 wanyuetian wanyuetian 608 Oct 22 16:07 id_dsa.pub
3、分发公钥(以10.0.0.8为例,其他相同),SSH的端口为22
[wanyuetian@nfs-server ~]$ ssh-copy-id -i .ssh/id_dsa.pub [email protected]
如果SSH端口不是22,使用命令ssh-copy-id -i .ssh/id_dsa.pub "-p 52113 [email protected]"
[root@lamp02 ~]# ll /home/wanyuetian/.ssh/ -rw------- 1 wanyuetian wanyuetian 608 Oct 22 16:11 authorized_keys
id_dsa.pub分发后,在其他客户端名字变为authorized_keys,内容没有发生改变,所以可以在服务端改名后打包分发或放到web服务器给其他服务器提供下载,注意authorized_keys文件的权限要一定为600
4、测试远程执行命令
[wanyuetian@nfs-server ~]$ ssh -p22 [email protected] /sbin/ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:29:F6:A2:78 inet addr:10.0.0.8 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fef6:a278/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:41966 errors:0 dropped:0 overruns:0 frame:0 TX packets:24455 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5163110 (4.9 MiB) TX bytes:3706021 (3.5 MiB)
Ps:到此,SSHKey部署完成,本案例我是用普通用户做的,所以安全性较高,但是进行批量管理以及分发文件时较为不便,需要root做sudo授权。如果不考虑安全性,可以直接使用root用户部署。
SSHKey适合小规模集群环境的部署和管理(即服务器只有几十台左右),如果服务器较多,可以考虑使用Saltstack进行批量管理。