Linux shell 自動化修改SSH配置檔案

2021-10-06 21:45:50 字數 3005 閱讀 8135

ssh可以為遠端登入的會話和其他網路服務提供安全性的協議。它是目前較可靠,是專為遠端登入會話和其他網路服務提供安全性的協議。利用ssh協議可以有效防止遠端管理過程中的資訊洩露問題,透過ssh可以對所有傳輸的資料進行加密,也能夠防止dns欺騙和ip欺騙。

在實際開發當中我們一般在pc端安裝客戶端軟體連線ssh服務,常用工具為(mobaxterm,xshell,securecrt等)。因為ssh是加密傳輸資料的,所以可以有效的遠端管理過程中的資訊洩露。當然前提是配置正確的ssh服務,在/etc/ssh/sshd_config上預設有些配置是不合理,因此需要我們手動配置。

在這個過程中,因為有大量的主機需要修改,是否可以考慮寫個自動化指令碼,減少重複工作。使用指令碼自動化完成重複的工作任務,才是提公升生產效率的核心。這才是我們需要寫指令碼的根本目的。

配置sshd_config檔案

centos7 系統中ssh服務端的預設配置檔案是/etc/ssh/ssh_config,通過跳轉該配置檔案中的引數可以讓我們的ssh服務更安全。

我們都知道ssh埠是22埠,通過port引數修改該埠可以有效防止網路上的大量掃射類的攻擊。

預設ssh服務會監聽整個計算機所有網絡卡ip埠,我們可以通過listenaddress 引數可以設定其僅監聽特定的ip位址,如僅監聽內網的ip位址,可以減少被攻擊的可能性。listenaddress 預設監聽所有位址。

ssh是允許超級管理員root遠端登入,這對於線上伺服器來說是非常危險的事情,可以通過permitrootlogin引數的值可以禁止root登入。

ssh支援多種遠端連線的賬戶認證方式,如:密碼認證,秘鑰等等。為了防止洩露,我們可以配置gssapiauthentication。

找到 gssapiauthentication選項,如果沒有注釋,將其注釋

#gssapiauthentication yes

新增gssapiauthentication no

在實際使用中用秘鑰認證更安全。

預設ssh會對遠端主機進行dns的反向解析,這會浪費大量的時間,我們可以通過usedns引數禁止其查詢dns伺服器。

找到 usedns選項,如果沒有注釋,將其注釋

#usedns yes

新增usedns no

設定使用者和組的白名單,或者使用者和組的黑名單分別可以配置allowusers、allowgroups和denyusers、denygroups。不管是白名單還是黑名單,在限制使用者的同時可以限制使用者的**。

想要了解跟多ssh配置檔案,可以檢視相關文件哈。

自動化修改ssh配置檔案

下面我們開始編寫指令碼實現自動化修改ssh配置檔案,有再多的伺服器只要執行指令碼都可完成配置的初始化工作。

#!/bin/bash

#功能:修改sshd配置檔案,提公升ssh安全性

config_file="/etc/ssh/sshd_config"

port=12345

#將預設埠號修改為自定義埠號

if grep -q "^port"

$config_file

;then

sed -i "/^port/c port $port"

$config_file

else

echo

"port $port" >> $config_file

fi#禁止root遠端登入ssh伺服器

if grep -q "^permitrootlogin"

$config_file

;then

sed -i '/^permitrootlogin/s/yes/no/'

$config_file

else

sed -i '$a permitrootlogin no'

$config_file

fi#禁止使用密碼遠端登入ssh伺服器

if grep -q "^passwordauthentication"

$config_file

;then

sed -i '/^passwordauthentication/s/yes/no/'

$config_file

else

sed -i '$a passwordauthentication no'

$config_file

fi#禁止x11圖形**功能

if grep -q "^x11forwarding"

$config_file

;then

sed -i '/^x11forwarding/s/yes/no/'

$config_file

else

sed -i '$a x11forwarding no'

$config_file

fi#禁止dns查詢

總結使用指令碼自動化完成重複的工作任務,才是提公升生產效率的核心。這才是我們需要寫指令碼的根本目的。有再多的伺服器只要執行指令碼都可完成配置的初始化工作。這也是為什麼寫本篇文章的原因!

自動化測試 引言 自動化之我見

作為開篇,這裡先簡單介紹一下個人情況 本人非計算機專業的本科畢業,從事軟體測試工作一年多了,同樣的,接觸自動化測試領域也有一年了,打算開個部落格把我在工作中所學到與自動化測試有關的東西分享出來。好啦,下面開始說正題 自動化測試自身就是乙個很大的概念。逛過一些測試論壇的童鞋應該會知道qtp和loadr...

自動化測試 web自動化測試

自動化 由機器裝置代替人為完成制定目標的過程 優點 提高工作效率 減少勞動力 產品規格同一標準 批量生產 自動化測試 讓程式代替人為去驗證程式功能的過程,即在預設條件下執行程式系統 流程確定 搭建自動化框架 編寫測試用例,將其轉化為soupui 介面 自動化測試指令碼 執行自動化測試指令碼 輸出執行...

Linux Shell互動式自動化運維程式

expect 是linux作業系統下的乙個用來處理互動操作,系統預設是沒有安裝expect庫,所以執行expect會提示找不到命令,需要手動安裝,其它安裝也比較簡單,可以通過二進位制原始碼包編譯配置進行安裝,也可以通過網路借助yum源來安裝,yum源安裝比較簡單 我們下面借助expect庫來實現li...