部署環境:
準備兩臺(或兩臺以上)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進行批量管理。