2020-03-14 企業(yè)級(jí)SSHD免密碼批量管理的企業(yè)項(xiàng)目案例

1. 基于密鑰認(rèn)證的SSH批量管理原理

企業(yè)級(jí)SSHD免密碼批量管理企業(yè)項(xiàng)目案例的實(shí)現(xiàn)思想如下圖所示。

基于密鑰認(rèn)證的SSH批量管理原理圖

2. 項(xiàng)目需求分析

要求所有服務(wù)器在同一root系統(tǒng)用戶下,實(shí)現(xiàn)m01機(jī)器從本地分發(fā)數(shù)據(jù)到其他兩臺(tái)機(jī)器上廊佩,在分發(fā)的過程中不需要系統(tǒng)提示輸入密碼驗(yàn)證,當(dāng)然碎绎,除了分發(fā)的功能略步,還可以批量查看所有客戶機(jī)上的CPU、LOAD盯滚、MEM踢械、系統(tǒng)版本等信息。即實(shí)現(xiàn)從m01服務(wù)器發(fā)布數(shù)據(jù)到其他客戶端服務(wù)器以及查看信息的免密碼登錄驗(yàn)證解決方案魄藕。

3. 項(xiàng)目部署說明

在很多企業(yè)的工作環(huán)境中内列,直接用root用戶進(jìn)行分發(fā)和管理操作,這樣很不安全也很不規(guī)范背率,另外话瞧,如果做安全優(yōu)化時(shí)禁止了root遠(yuǎn)程連接,那么使用root進(jìn)行分發(fā)管理的方法就無用了寝姿,但是使用root做認(rèn)證是非常簡單交排、方便的方案,這里也采取了簡單方便的root用戶免密方案饵筑,使用普通用戶的方案要復(fù)雜很多埃篓。

4. 開始項(xiàng)目部署

因?yàn)閙01服務(wù)器為中心管理服務(wù)器,所以我們選擇在m01端建立Public Key(鎖)與Private Key(鑰匙)更方便根资,實(shí)際上只需要有一對(duì)密鑰就可以架专,在哪個(gè)機(jī)器上建立都是一樣的。

批量管理架構(gòu)圖

提示:在整個(gè)方案實(shí)現(xiàn)中玄帕,鑰匙(Private Key)和鎖(Public Key)僅需要建立一次即可在任意機(jī)器上執(zhí)行部脚,這里選擇了在m01服務(wù)器生成密鑰對(duì)。

5. 生成密鑰對(duì)

[root@m01 ~]# ssh-keygen
---執(zhí)行該命令生成密鑰桨仿,默認(rèn)是RSA類型密鑰睛低,ssh-keygen是生成密鑰的工具,-t參數(shù)指建立密鑰的類型服傍,默認(rèn)是建立RSA類型密鑰钱雷。也可以執(zhí)行ssh-keygen -t dsa來建立DSA類型密鑰。
---RSA與DSA加密算法的區(qū)別
---RSA吹零,是一種加密算法(PS:RSA也可以進(jìn)行數(shù)字簽名)罩抗,它的簡寫的來由是Ron Rivest、Adi Shamir和Leonard Adleman    ---這3個(gè)人姓氏的第一個(gè)字母
---DSA就是數(shù)字簽名算法的英文全稱的簡寫灿椅,即Digital Signature Algorithm
   RSA既可以進(jìn)行加密套蒂,也可以進(jìn)行數(shù)字簽名實(shí)現(xiàn)認(rèn)證钞支,而DSA只能用于數(shù)字簽名從而實(shí)現(xiàn)認(rèn)證
Generating public/private rsa key pair.    ---一直按回車鍵
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.    ---這是Private Key的路徑
Your public key has been saved in /root/.ssh/id_rsa.pub.    ---這是Public Key的路徑
The key fingerprint is:
SHA256:z7M+gqsZUUcoYX9o5uzT83SkS3EWAFXRB/APWa419Uc root@m01
The key's randomart image is:
+---[RSA 2048]----+
|    o. .ooo.++..E|
|   ....o   . ..=+|
|     .* o   . +o=|
|     * o     . =o|
|    . o S . + . .|
|     o . o *     |
|    . o.o B .    |
|     o...=.=     |
|    o... o=.     |
+----[SHA256]-----+

下面是兩種一鍵非交互式創(chuàng)建密鑰(可以用于自動(dòng)化部署)的方法:

(1)一鍵生成密鑰對(duì)ssh-keygen -t dsa -p  '' -f ~/.ssh/id_rsa >/dev/null 2>&1
(2)echo -e "\n"|ssh-keygen -t dsa -N ""

查看生成的密鑰。

[root@m01 ~]# ls -l ~/.ssh/
總用量 12
-rw-------  1 root root 1679 3月  14 12:48 id_rsa    ---這是Private Key
-rw-r--r--  1 root root  390 3月  14 12:48 id_rsa.pub    ---這是Public Key

提示:請(qǐng)注意.ssh目錄的權(quán)限為700操刀,另外烁挟,Private Key的id_rsa文件權(quán)限為600,Public Key的id_rsa.pub當(dāng)前文件權(quán)限為644骨坑。其中Private Key的id_rsa文件權(quán)限必須為600撼嗓。

6. 分發(fā)公鑰(鎖)

把公鑰從m01拷貝到WEB01、WEB02服務(wù)器各一份欢唾,ssh-copy-id為系統(tǒng)自帶的Shell腳本且警,可用來分發(fā)公鑰,在m01上執(zhí)行如下命令發(fā)送公鑰:

[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.9.7
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.9.7 (192.168.9.7)' can't be established.
ECDSA key fingerprint is SHA256:lpAQ77XAqJ/27nex4tZvKv8y9craDayqf12ZB9V3QKk.
ECDSA key fingerprint is MD5:c8:94:09:a2:27:8b:92:6f:b7:60:fc:94:bd:f9:14:88.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.9.7's password: 
Number of key(s) added: 1    ---注意這里礁遣,提示添加了一個(gè)新Key
Now try logging into the machine, with:   "ssh '192.168.9.7'"
and check to make sure that only the key(s) you wanted were added.

同理執(zhí)行如下命令拷貝公鑰斑芜,過程省略。

[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.9.9

此時(shí)通過輸出及登錄Web01及Web02服務(wù)器祟霍,可以看到root用戶家目錄多了一個(gè).ssh目錄杏头,.ssh目錄里增加了一個(gè)文件authorized_keys,那么這個(gè)文件就是改了名字的id_rsa.pub文件沸呐。為什么要改成authorized_keys這個(gè)名字呢大州?因?yàn)槟J(rèn)情況下,SSH的配置文件中默認(rèn)調(diào)用的公鑰路徑為.ssh垂谢,文件名就是authorized_keys。

[root@web01 ~]# grep AuthorizedKeysFile /etc/ssh/sshd_config
AuthorizedKeysFile  .ssh/authorized_keys    ---因?yàn)镾SHD配置文件里是authorized_keys名字
[root@web01 ~]# ls -ld ~/.ssh
drwx------ 2 root root 29 3月  14 16:19 /root/.ssh    ---注意這里疮茄,.ssh權(quán)限是700
[root@web01 ~]# ls -l ~/.ssh/
總用量 4
-rw------- 1 root root 390 3月  14 16:19 authorized_keys    ---公鑰被改成這個(gè)名字了

7. 拷貝SSH密鑰對(duì)

當(dāng)要分發(fā)的節(jié)點(diǎn)機(jī)器有數(shù)百臺(tái)時(shí)滥朱,使用ssh-copy-id就相對(duì)麻煩了,因?yàn)榈谝淮慰截悤r(shí)需要人工輸入密碼力试。解決這個(gè)問題的辦法就是用Shell結(jié)合expect交互式命令或sshpass等命令來實(shí)現(xiàn)徙邻。

8. 遠(yuǎn)程登錄執(zhí)行命令測試

從m01服務(wù)器遠(yuǎn)程連接節(jié)點(diǎn)Web01并執(zhí)行命令測試:

[root@m01 ~]# ssh 192.168.9.7 uptime
 16:50:38 up 10:05,  2 users,  load average: 2.00, 2.01, 1.98

從上面的結(jié)果中,我們發(fā)現(xiàn)已經(jīng)無須密碼就可以連接節(jié)點(diǎn)Web01執(zhí)行命令了畸裳,連接Web02也是如此缰犁。

9. 實(shí)現(xiàn)批量管理服務(wù)器

[root@m01 ~]# cd /server/scripts/
[root@m01 scripts]# vim view.sh
for n in 7 9
do
        echo ------192.168.9.$n------
        ssh 192.168.9.$n $1
done

運(yùn)行腳本,可以傳參任意要執(zhí)行的命令怖糊,注意命令有空格時(shí)要用引號(hào)引起來帅容。

[root@m01 scripts]# sh view.sh "cat /etc/redhat-release"
------192.168.9.7------
CentOS Linux release 7.6.1810 (Core) 
------192.168.9.9------
CentOS Linux release 7.6.1810 (Core)

如果遇到環(huán)境變量問題,可以調(diào)整環(huán)境變量配置到/etc/bashrc里面伍伤。
這樣一來并徘,即時(shí)有幾百臺(tái)服務(wù)器,也瞬間就可以查看想要的所有服務(wù)器的信息了扰魂。

10. 分發(fā)任意本地?cái)?shù)據(jù)到所有節(jié)點(diǎn)的任意位置

下面以scp命令為例麦乞,并發(fā)Shell腳本實(shí)現(xiàn)批量免密鑰分發(fā)文件蕴茴。

[root@m01 scripts]# cat fenfa.sh 
#!/bin/sh
. /etc/init.d/functions    ---引入系統(tǒng)函數(shù)庫
if [ $# -ne 2 ]    ---參數(shù)不為2被提示幫助
then
    echo "usage:$0 localfile remotedir"
    exit 1
fi

for n in 7 9 51
do
    scp -P 22 -rp $1 root@192.168.9.$n:$2 &>/dev/null
    if [ $? -eq 0 ]
    then
        action "192.168.9.$n successful" /bin/true
    else
        action "192.168.9.$n failure" /bin/false
    fi
done

測試結(jié)果如下:將本地/etc/hosts分發(fā)到其他機(jī)器的/tmp下。

[root@m01 scripts]# sh fenfa.sh /etc/hosts /tmp/
192.168.9.7 successful                                     [  確定  ]
192.168.9.9 successful                                     [  確定  ]
192.168.9.51 failure                                       [失敗]

至此姐直,本項(xiàng)目案例大功告成倦淀。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市声畏,隨后出現(xiàn)的幾起案子撞叽,更是在濱河造成了極大的恐慌砰识,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辫狼,死亡現(xiàn)場離奇詭異初斑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)膨处,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門见秤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人真椿,你說我怎么就攤上這事鹃答。” “怎么了突硝?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵测摔,是天一觀的道長。 經(jīng)常有香客問我解恰,道長锋八,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任护盈,我火速辦了婚禮挟纱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘腐宋。我一直安慰自己紊服,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布胸竞。 她就那樣靜靜地躺著欺嗤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卫枝。 梳的紋絲不亂的頭發(fā)上剂府,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音剃盾,去河邊找鬼腺占。 笑死淤袜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衰伯。 我是一名探鬼主播铡羡,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼意鲸!你這毒婦竟也來了烦周?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤怎顾,失蹤者是張志新(化名)和其女友劉穎读慎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體槐雾,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夭委,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了募强。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片株灸。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡慌烧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屹蚊,到底是詐尸還是另有隱情,我是刑警寧澤淑翼,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站冯丙,受9級(jí)特大地震影響胃惜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鲫趁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一挨厚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疫剃,春花似錦、人聲如沸牲阁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至法瑟,卻和暖如春唁奢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酥夭。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國打工熬北, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诚隙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓巫延,卻偏偏與公主長得像炉峰,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子疼阔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容