自動登入linux伺服器指令碼

2021-10-01 14:37:37 字數 705 閱讀 1492

自動登入linux伺服器指令碼

在伺服器上進行開發時,往往需要進行密碼登入,甚至有的需要先登入堡壘機,再登入開發機,輸入過程較為繁瑣,因此考慮將命令寫成指令碼的形式自動化登入。

方法ssh登入是乙個互動的過程,且沒有特定的引數指定密碼的輸入方式,因而不能用管道、重定向的方式實現。這種情況可以使用expect包進行自動登入功能的實現。 

expect是乙個用來處理人與程式互動的包,可以將互動過程用程式實現,適用於做ssh自動登入。可以使用whereis命令檢視是否安裝了expect,如果沒有的話,可以自行使用包管理工具進行安裝。 

自動登入指令碼的編寫如下:

#!/bin/expect  

set timeout 20  

spawn ssh username@host_name:port

expect "password:"

send "password\n"  

interact  

第一行注釋指定了使用expect執行,第二行設定超時時間為20秒,第三行spawn為expect執行命令的關鍵字,第四行expect表示互動獲取的內容是否包含」password:」字串,第五行表示將輸入內容傳送過去(加了個\n表示回車),最後一行,interact代表執行完留在遠端控制台,不加這句執行完後返回本地控制台。 

將這個指令碼命名存在本地,在儲存的路徑下,執行expect cmd_file_name即可實現自動登入伺服器。

Shell指令碼實現自動輸入密碼登入伺服器

這裡我們主要講使用expect實現自動輸入功能 安裝 centos下安裝命令,如下 yum install expect 開始之前的乙個簡單例項 plain view plain copy usr bin expect spawn ssh root 1.1.1.1 expect password s...

設定windows伺服器自動登入

將系統改為自動登入的運作方式有兩種方法。一種方法比較複雜,但可以幫助您完全掌握windows 2003自動登入的設定方法。首先單擊 開始執行 在輸入框中鍵入 regedit 開啟登錄檔編輯器,然後在登錄檔編輯器左方控制台中依次單擊展開 hkey local machine software micr...

使用指令碼進行ssh登入伺服器(Linux新手之路)

前面的部落格完成了乙個簡單的定時刪除日誌的指令碼,但由於現在又多台伺服器,需要在多台伺服器上執行刪除日誌操作的指令碼,有很多辦法,我想到的方法,乙個是,可以將指令碼部署到這些伺服器上,然後在每台伺服器上使用crontab來定時執行,但是如果伺服器太多的話,就比較繁瑣 還有乙個辦法就是通過指令碼去登入...