部署环境:

准备两台(或两台以上)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 wanyuetian@10.0.0.8

如果SSH端口不是22,使用命令ssh-copy-id -i .ssh/id_dsa.pub "-p 52113 wanyuetian@10.0.0.8"

[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 wanyuetian@10.0.0.8 /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进行批量管理。