Linux使用ssh公鑰實現免批量分發管理服務器
ssh 無密碼登錄要使用公鑰與私鑰。linux下可以用用ssh-keygen生成公鑰/私鑰對,下面我以CentOS 6.6為例。
管理機器外網IP10.0.0.61(內網172.16.1.61) 服務器外網10.0.0.31,端口52113,內網172.16.1.31
(1)首先在所有機器上批量創建管理用戶。
[root@m01 ~]#useradd oldgirl
[root@m01 ~]#echo 123456|passwd --stdin oldgirl
[root@m01 ~]#id oldgirl
(2)所有機器均切換到管理用戶,並創建密鑰對。
[root@m01 ~]#su – oldgirl
[oldgirl@m01 ~]$ssh-keygen -t dsa # -t指定秘鑰類型,默認為rsa,連續按三個回車鍵
Your identification has been saved in /home/oldgirl/.ssh/id_dsa
Your public key has been saved in /home/oldgirl/.ssh/id_dsa.pub
[oldgirl@m01 ~]$pwd
/home/oldgirl
[oldgirl@m01 ~]$ll .ssh/
-rw------- 1 oldgirl oldgirl 668 Mar 24 19:40 id_dsa
-rw-r----- 1 oldgirl oldgirl 601 Mar 24 19:40 id_dsa.pub 鎖
或者使用下面的命令,非交互式一鍵創建密鑰對
1、ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa >/dev/null 2>&1
2、[oldgirl@backup ~]$ echo -e "\n"|ssh-keygen -t dsa -N ""
(3)分發秘鑰(鎖)給需要管理的機器
[oldgirl@m01 ~]$ ssh-copy-id -i .ssh/id_dsa.pub "-p 52113 [email protected]" 註意這裏是內網網段,端口已修改為52113。這裏的拷貝僅僅針對公鑰,它不會發送私鑰。另外也可以使用scp -P去遠程復制。
如果端口沒有做修改,那麽可以直接使用[oldgirl@m01 ~]$ssh-copy-id -i .ssh/id_dsa.pub [email protected],這裏是外網網段。
(4)分發完秘鑰之後,可以去客戶機(服務器)去查看公鑰信息及權限
[oldgirl@nfs01 ~]$ll .ssh/
-rw------- 1 oldgirl oldgirl 601 Mar 24 19:56 authorized_keys #權限為600,傳過來的共要文件更名為authorized_keys,這個是在ssh配置文件(/etc/ssh/sshd_conf)設置的。
(5)測試:遠程使用命令查看服務器網卡
[oldgirl@m01 ~]$ssh -p52113 [email protected] /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:85:5E:85
inet addr:10.0.0.31 Bcast:10.0.0.255 Mask:255.255.255.0
至此,初步實現使用ssh公鑰實現免批量分發管理服務器。
Linux使用ssh公鑰實現免批量分發管理服務器