成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

運維必備:批量實現Linux機器SSH免密登錄的自動化腳本

網絡 系統
本文將詳細介紹如何通過Shell腳本實現自動批量地在所有目標服務器之間配置SSH免密登錄,幫助運維人員輕松應對類似的批量管理任務。

在某個大型項目的運維過程中,運維工程師小李需要在數十臺Linux服務器上執行一項例行的系統更新任務。為了確保任務的高效完成,他需要在所有目標服務器之間實現SSH免密登錄,這樣可以避免每次登錄都手動輸入密碼,提高工作效率。然而,手動配置每臺服務器的免密登錄不僅耗時,而且容易出錯。

為了解決這個問題,小李決定編寫一個Shell腳本,自動批量地在所有目標服務器之間配置SSH免密登錄。本文將詳細介紹如何通過Shell腳本實現這一目標,幫助運維人員輕松應對類似的批量管理任務。

實現思路

  • 首先在本地機器上生成SSH密鑰對,如果尚未生成;
  • 接著準備一個包含目標服務器IP地址的文件和一個用于登錄的遠程用戶名和密碼;
  • 然后編寫Shell腳本,讀取服務器列表并使用sshpass工具和ssh-copy-id命令將本地公鑰復制到每個遠程服務器的~/.ssh/authorized_keys文件中,以實現免密登錄;
  • 最后,通過執行該腳本,自動批量配置所有目標服務器的SSH免密登錄,以簡化和自動化運維操作。

腳本編寫

這個Shell腳本用于批量將SSH公鑰分發到多個目標主機,以實現免密登錄。腳本首先檢查必要的依賴和輸入,然后遍歷目標主機列表,將本地生成的SSH公鑰拷貝到每個目標主機上。

(1) 設置公鑰文件路徑

PUB_KEY_FILE="$HOME/.ssh/id_rsa.pub"

定義本地公鑰文件的路徑,默認路徑為~/.ssh/id_rsa.pub。

(2) 檢查sshpass是否安裝

# 檢查sshpass是否安裝
if ! command -v sshpass &> /dev/null; then
    echo "sshpass 未安裝。請先安裝 sshpass,然后再運行此腳本。"
    exit 1
fi

使用command -v檢查系統中是否安裝了sshpass工具。如果未安裝,則提示用戶安裝并退出腳本。

(3) 設置目標主機列表文件 ,并檢查文件是否存在

host_list_file="$1"
if [ ! -f "$host_list_file" ]; then
    echo "錯誤: 文件 '$host_list_file' 不存在"
    exit 1
fi

將第一個命令行參數(目標主機列表文件)賦值給host_list_file變量。

(4) 讀取目標主機列表并分發公鑰

while IFS= read -r host; do
    echo "正在處理 $host..."
    ......
done < "$host_list_file"

使用while循環逐行讀取目標主機列表文件,每次讀取一個主機地址并賦值給host變量。

(5) 生成SSH密鑰對

    if [ ! -f ~/.ssh/id_rsa ]; then
        ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
    fi

檢查本地是否已經存在SSH私鑰文件~/.ssh/id_rsa,如果不存在,則生成一個新的SSH密鑰對。

(6) 使用sshpass和ssh-copy-id將公鑰拷貝到目標主機上

sshpass -p "$password" ssh-copy-id -i ~/.ssh/id_rsa.pub "-p $ssh_port" "$host"

使用sshpass工具提供密碼,通過ssh-copy-id命令將本地公鑰拷貝到目標主機的~/.ssh/authorized_keys文件中。指定SSH端口和目標主機地址。

腳本使用

這邊準備了四臺測試機器,如下圖:

在跳板機上新建一個文件名為 deploy_ssh_keys.sh,并把腳本的內容復制進去,然后,保存退出。如下圖:

然后,為腳本賦予執行的權限,執行如下命令:

chmod +x deploy_ssh_keys.sh

接著,新建一個名為ip.txt的文件,用于存放ip列表的,內容格式如下:

192.168.31.185
192.168.31.232
192.168.31.210
192.168.31.209

運行如下命令,執行腳本文件

./deploy_ssh_keys.sh ip.txt 22 123456

執行成功后,會輸出如下信息。

最后,在跳板機上順便找一臺機測試,輸入結果如下:

結論

通過上述步驟和Shell腳本,你可以輕松地在多臺Linux服務器之間實現SSH免密登錄。這種方法適用于需要批量管理和自動化運維的場景,能夠極大提高工作效率。希望這篇教程對你有所幫助!

責任編輯:趙寧寧 來源: 攻城獅成長日記
相關推薦

2018-06-23 07:31:05

2017-10-13 13:14:35

互聯網

2012-05-05 21:28:44

2012-10-22 14:54:48

2024-06-11 10:41:14

2014-08-04 10:10:35

IT運維自動化運維

2019-11-28 08:25:53

Linux腳本SSH

2021-11-19 10:55:03

GitOps運維自動化

2017-03-22 18:30:44

Linux運維自動化ansible

2017-03-22 16:31:30

Linux運維自動化ansible

2025-05-06 07:50:00

Ansible命令運維

2012-11-20 17:22:57

2015-10-08 10:55:23

云服務自動化運維 ANSIBLE

2018-07-26 13:50:37

IT架構運維

2014-09-22 11:24:18

運維

2013-04-16 14:55:21

自動化運維Puppet實戰

2017-07-25 10:53:27

2015-06-24 10:42:19

云計算運維自動化運維ANSIBLE

2015-08-05 09:53:34

運維自動化

2015-10-21 11:03:21

ssh登錄Linux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久91av| 国产日本精品视频 | 国产精品成人一区二区三区 | 亚洲激情一区二区三区 | 欧美老少妇一级特黄一片 | 成人影视网 | 久久精品国产免费 | 国产精品国产精品国产专区不片 | 日韩视频精品在线 | 网络毛片| 国产精品一区二区在线 | 国产区在线观看 | 亚洲第一视频网站 | 午夜a v电影 | 欧美日韩一区精品 | 欧美日韩在线观看一区 | 亚洲一区在线播放 | 91精品国产欧美一区二区成人 | 久久久久91 | 国产丝袜一区二区三区免费视频 | 国产黄色免费网站 | 久久久久免费精品国产小说色大师 | 精品成人佐山爱一区二区 | 在线黄色影院 | 日韩欧美在线观看 | 久久精品小视频 | 特黄特色大片免费视频观看 | 日韩成人免费视频 | 91在线观看免费 | 亚洲国产一区二区视频 | 欧美视频二区 | 免费一级欧美在线观看视频 | 精品国产99 | 日韩欧美国产精品 | 99精品免费久久久久久日本 | 黑人粗黑大躁护士 | 国产伦一区二区三区久久 | 亚洲精品视频一区二区三区 | 九九综合九九 | 国产999精品久久久 日本视频一区二区三区 | 亚洲一区二区三区久久久 |