IT公司企業級批量分發\管理方案(分發,批量部署、執行命令、批量管理)
一、中小企業最基本實用的sshkey密鑰管理方案
二、門戶網站puppet (複雜,過重)sina
三、趕集,小米SALSTACK批量管理(輕量)
SSH server: 1、SSH服務 2、SFTP服務(vsftp,proftp) ssh client: 特別提醒:SSH客戶端(ssh)還包含一個頗有用的遠程安全拷貝命令scp,也是經過ssh協議工做的。 知識小結:(openssh負責鏈接 openssl負責加密) 1、ssh是安全加密協議,用於遠程鏈接linux服務器 2、ssh默認端口是22,安全協議版本ssh2,ssh1 有漏洞 ssh2多加了一個確認聯機正確性的Diffie-Hellman機制,避免聯機中被插入惡意代碼 3、ssh服務端主要包含兩個服務功能ssh遠程鏈接,sftp服務 4、linux ssh客戶端包含ssh遠程鏈接命令,以及遠程拷貝scp命令 SSH服務認證類型 1、基於口令的安全認證 2、基於密鑰的安全認證 鎖Public Key 鑰匙Private Key 創建一對密鑰對,公用密鑰放在須要訪問的目標服務器上,另外還須要把私鑰放到ssh的客戶端或對應的服務器上
配置node
在3臺服務器上創建gtms帳號
192.168.0.84 node84 分發服務器 192.168.0.85 node85 192.168.0.86 node86
一、生成密鑰文件
root@node84 ~]# su - gtms
[gtms@node84 ~]$ ssh-keygen -t dsa #一路回車
Generating public/private dsa key pair.
Enter file in which to save the key (/home/gtms/.ssh/id_dsa):
Created directory '/home/gtms/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/gtms/.ssh/id_dsa.
Your public key has been saved in /home/gtms/.ssh/id_dsa.pub.
The key fingerprint is:
31:54:57:38:fb:8f:58:de:45:ff:26:e0:33:a5:bb:a0 gtms@node84
The key's randomart image is:
+--[ DSA 1024]----+
| ... .o. |
| . .o |
| o o |
| o . .|
| S . ..|
| . + o|
| .. B +o|
| . .* + =|
| E o= o |
+-----------------+
[gtms@node84 ~]$ ls -al .ssh
total 16
drwx------ 2 gtms gtms 4096 Jan 30 03:56 .
drwx------ 3 gtms gtms 4096 Jan 30 03:56 ..
-rw------- 1 gtms gtms 668 Jan 30 03:56 id_dsa
-rw-r--r-- 1 gtms gtms 601 Jan 30 03:56 id_dsa.pub
二、將公鑰傳到其餘服務器
[gtms@node84 ~]$ ssh-copy-id -i .ssh/id_dsa.pub gtms@192.168.0.85
[gtms@node84 ~]$ ssh-copy-id -i .ssh/id_dsa.pub gtms@192.168.0.86
[gtms@node85 ~]$ ls -l .ssh/
total 4
-rw------- 1 gtms gtms 601 Jan 30 04:01 authorized_keys #自動變爲此文件 600權限
[gtms@node85 ~]$
以下操做已經經過密鑰認證方式,無需密碼
[gtms@node84 ~]$ssh gtms@192.168.0.85
[gtms@node84 ~]$scp -P22 /etc/hosts gtms@192.168.0.85:~
經過腳本實現分發
[gtms@node84 ~]$ cat fenfa.sh
#!/bin/sh
. /etc/init.d/functions
if [ $# -ne 1 ]
then "USAGE:$0 {filename|dirname}"
exit 1
fi
for n in 85 86
do
scp $1 patrol@192.168.0.$n:~ &>/dev/null
if [ $? -eq 0 ]
then
action "fenhua 192.168.0.$ is ok" /bin/true
else
action "fenhua 192.168.0.$n is not ok" /bin/false
fi
done
SSH批量分發與管理方案小結一、利用root作ssh作ssh key作驗證(危險等級太大) 優勢:簡單、易用 缺點:安全性差,同時沒法禁止root遠程鏈接這個功能 企業應用:80%中小企業二、利用普通用戶來作 思路是先把文件的文件分發到用戶家目錄,而後sudo提權cp分發的文件的對應權限 #echo 'gtms ALL=(ALL) NOPASSWD:/usr/bin/rsync' >>/etc/sudoers 優勢:安全,無需中止root遠程鏈接 缺點:配置較複雜三、同方案2,只是不用suid,而是設置suid對固定命令受權 優勢:相對安全 缺點:複雜,安全性較差,任何人均可以處理帶suid權限的命令 建議:追求簡單,選1。追求安全建議選2.有能力puppet,saltstack