目錄
一、統計分散式叢集資訊的想法
二、SSH加密原理
三、SSH指令
四、利用ssh-keygen和ssh-copy-id 實現免密登入
五、Linux Shell 腳本實作
六、ssh只循環一次問題
首頁 運維 linux運維 Linux Shell怎麼用ssh指令統計分散式叢集信息

Linux Shell怎麼用ssh指令統計分散式叢集信息

May 11, 2023 pm 03:52 PM
linux ssh shell

一、統計分散式叢集資訊的想法

用免密的遠端登陸指令,實作一台機器存取其他叢集的機器。因此想要實作有幾個重要步驟:

  • 學會shh的使用方法

  • 實作免密登入

  • #編寫shell程式

二、SSH加密原理

非對稱加密技術是一種加密和解密用的不同金鑰的加密方法。其中RSA和DSA就是非對稱加密方法。當然非對稱加密演算法有一個前提,就是有一對金鑰可以互相加密和解密,通常這對金鑰就會成為持有者的公鑰和私鑰。公鑰是其他人可以知悉的密鑰,而私鑰只能持有者自己知道。當然如果私鑰洩漏給外人,可能會有資訊安全問題。

假如:A要傳送給B一個加密資料。第一種方法是:A用自己的私鑰加密,B取得資料後用A的公鑰解密。第二種方法是:A用B的公鑰加密數據,B取得數據後再用自己的私鑰解密。

SSH遠端登入用的是第一種方法。

三、SSH指令

常用的方法是

 ssh -i [私密金鑰檔案名稱] -p  [連接埠號碼] user@hostname  [執行的指令]

其中私鑰檔案名稱預設為$HOME/.ssh/id_rsa    或$HOME/.ssh/id_dsa ,連接埠號碼預設為22.  

#例如:

ssh   myname@128.180.146.89  #输入目标主机的密码后进行远程操作,exit命令退出
登入後複製

四、利用ssh-keygen和ssh-copy-id 實現免密登入

ssh-keygen     #直接全部回车,先都默认
登入後複製

然後會在$HOME/.ssh/   目錄下產生一個金鑰對文件,其中*.pub統一為公鑰文件,另外一個就是私鑰文件。

接下來把公鑰檔案中的內容拷貝到目標主機使用者的 $HOME/.ssh/authorized_keys 中。拷貝方式可以自行手動操作。也可用以下指令實作

ssh-copy-id -i [公鑰檔名]  user$hostname

例如 :

ssh-copy-id -i  $HOME/.ssh/id_rsa.pub  myname@128.180.146.89
登入後複製

然後再執行遠端登入指令就可以實現免密登入啦。如果第二次登入還需要密碼,可能是因為檔案和檔案目錄權限問題。也可能是因為連結的私鑰與公鑰不是一對。

五、Linux Shell 腳本實作

sshtest.sh檔案:

#!/bin/bash
func___setenv(){
   RTS_ECT_DIR="$HOME"
   #.....
}
######################################
#
#   程序主体
######################################
 
#调用环境变量
func___setenv
 
#读取机器连接信息
while read line
do
ssh_cmd=
ssh_linkhost=`echo ${line}`
    while  read  cmdline
    do
    #空命令行跳过
    if [ -z "$cmdline" ]; then
        continue 
    fi
    
    #读取的命令行拼接;
    if [ ! -n "$ssh_cmd" ]; then
        ssh_cmd=`echo ${$cmdline}` ;
    else
        ssh_cmd="${ssh_cmd};"`echo ${$cmdline}` ;
    fi
    done <${RTS_ECT_DIR}/sshcmd.cfg
#执行远程命令
ssh $ssh_linkhost $ssh_cmd </dev/null
done <${RTS_ECT_DIR}/sshlink.cfg
登入後複製

sshlink.cfg 檔案:前提要先配好金鑰才可以免登入

myname@128.180.146.89
myName@128.180.146.90
Myname@128.180.146.91
登入後複製

sshcmd.cfg 檔案:依照自己需要填入

ps -ef|grep java 
df -h
登入後複製

六、ssh只循環一次問題

如果上述程式碼的倒數第二行如果改成

ssh $ssh_linkhost $ssh_cmd
登入後複製

那麼while循環就只循環1次。因為while read line 會把循環資訊放到標準輸入中,而ssh指令會把輸入快取全部讀光,所以while不在循環。所以ssh指令需要重定向

以上是Linux Shell怎麼用ssh指令統計分散式叢集信息的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

vscode終端命令不能用 vscode終端命令不能用 Apr 15, 2025 pm 10:03 PM

VS Code 終端命令無法使用的原因及解決辦法:未安裝必要的工具(Windows:WSL;macOS:Xcode 命令行工具)路徑配置錯誤(添加可執行文件到 PATH 環境變量中)權限問題(以管理員身份運行 VS Code)防火牆或代理限制(檢查設置,解除限制)終端設置不正確(啟用使用外部終端)VS Code 安裝損壞(重新安裝或更新)終端配置不兼容(嘗試不同的終端類型或命令)特定環境變量缺失(設置必要的環境變量)

See all articles