puppet運維自動化之sshkey管理

2021-09-08 20:42:10 字數 2195 閱讀 8261

puppet運維自動化之sshkey管理 | mysqlops 資料庫與運維自動化技術分享

you are here:

home /

puppet中文自動化管理 / puppet運維自動化之sshkey管理

九月 24, 2011 by sky · 2 comments

ssh key,作為系統管理人員經常會使用ssh  連線遠端伺服器,建立相應的金鑰,可以免去每次登入

都要輸入密碼的痛苦。另外關閉相應的password認證,用ssh key來認證也可以提高ssh 安全。但有

個問題,就是有n多台伺服器,如何批量建立ssh key認證呢? 還是用shell的for迴圈? 其實這完全

可以交給puppet來搞定。本章就為大家介紹運維自動化之ssh key管理。

【puppet sshkey 基礎】

在介紹puppet 管理 ssh key之前, 我們簡單回顧下面的問題

ssh為secure shell的縮寫,由ietf的網路工作小組(network working group)所制定;ssh為建立在應用層和傳輸層基礎上的安全協議。

ssh分為兩部分:客戶端部分和服務端部分,工作機制大致是本地的客戶端傳送乙個連線請求到遠端的服務端,服務端檢查申請的包和ip位址再傳送金鑰給ssh的客戶端,本地再將金鑰發回給服務端,自此連線互相建立。

步驟如下:a. 本地生成金鑰

# ssh-keygen -t dsa  -c  」test by sky」

b.複製公鑰到你想要的登入的機器(比如 ip為192.168.3.235)

c. 登入到192.168.3.235,這時候還是需要輸入密碼的。

# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

#chmod 700  ~/.ssh

#chmod 600 ~/.ssh/authorized_keys

至此,就可以無密碼登入。熟悉上面的後,我們就可以為大家詳細講解,如何用

puppet來管理ssh key?

【puppet  sshkey  概要】

puppet ssh key是主要安裝和管理ssh主機金鑰。

這種型別只知道如何安裝到/ etc/ssh/ssh_known_hosts,它不能管理使用者的授權金鑰。

【puppet ssh key 引數】

alias

別名,通俗的可以理解為小名,主機可能具有多個別名。如果有多個話可以用陣列表示。

ensure

key生成 的金鑰值,一般是十六進製制數字的長字串。

name

名稱,主機名.

provider

經常不需要指定,puppet根據相應的作業系統選擇相應的provider.

parsed: 為ssh解析和生成已知的host檔案。

target:

儲存的ssh金鑰檔案的路徑。

type

key生成的加密型別,通過是ssh-dsa,或者ssh-rsa,備註,dsa也可以用dss來表示。

user

指定是哪個使用者的key

【puppet sshkey 示例】

假設,我建立好了乙個使用者名為sky的使用者。由於他是sa,需要管理n臺機器,為了方便無密碼登入。

**示例:

ssh_authorized_key

【puppet sshkey  總結】

上面的例子是有個問題的,就是如果每多執行一次的話,他都會把key追加寫到/home/sky/.ssh/authorized_keys。

puppet 非常強大,建立使用者可以用puppet user來管理,本章最好結合使用者,還有之前一篇管理虛擬資源結合起來。

這樣可以實現基礎的使用者管理,使用者key管理等基礎工作,再配合puppet package管理軟體包。

一步步朝運維自動化方向前進。

補充:剛有同學在qq群裡問到,「就是如果每多執行一次的話,他都會把key追加寫到/home/sky/.ssh/authorized_keys」

有沒有解決方法,其實這是sky不小心,在金鑰值中寫了說明「***== test1.test.com」,把test1.test.com這個說明給去掉

就可以解決了。

puppet自動化運維之package資源

package資源管理系統的軟體包安裝,預設是yum源 etc yum.repo.d 的,通過puppet 來自動安裝的軟體包均是通過 yum來安裝的,所以需要先配置好 yum源。作用 管理哪些軟體包被安裝,哪些軟體包被解除安裝 管理軟體包的更新 注 要求系統配置好yum源 redhat系統 格式 ...

puppet自動化運維之exec資源

puppet通過exec來執行外部的命令或者指令碼,一般來講是shell指令碼。這裡面就涉及到乙個重複執行的問題,因為預設的agent一連線上來就會自動執行對應的命令或者指令碼。如果指令碼重複執行對系統沒影響的還無所謂,如果會對系統造成影響呢?乙個有用的方法是使用像creates引數來,除非達到了某...

Puppet自動化運維排錯案例

近日,自己維護的一組puppet agent機器,出現了如下報錯 12 root client src puppetd test server server.cn7788.com notice run of puppet configuration client alreadyinprogress ...