Linux下shell指令碼實現管理ssh鏈結

2021-09-05 10:09:07 字數 1659 閱讀 9177

sudo apt install expect
該檔案用來儲存使用者的ssh鏈結資訊

新建檔案password.lst,然後新增如下內容

序號:ip:埠:使用者:密碼:說明

1:123.56.10.38:22:username:password:阿里雲測試伺服器

2:192.168.88.130:22:ca0gu0:toor:虛擬機器mysql資料庫伺服器

#!/bin/bash

direc=`dirname $0`

function color()

echo "#####################"

color blue " ssh login platform "

echo "#####################"

echo

}function underline()

function main() ' $direc/password.lst

underline

read -p '[*] 選擇主機: ' number

pw="$direc/password.lst"

ipaddr=$(awk -v num=$number 'begin }' $pw)

port=$(awk -v num=$number 'begin }' $pw)

username=$(awk -v num=$number 'begin }' $pw)

passwd=$(awk -v num=$number 'begin }' $pw)

case $number in

[0-9]|[0-9][0-9]|[0-9][0-9][0-9])

echo $passwd | grep -q ".pem$"

return=$?

if [[ $return == 0 ]];then

ssh -i $direc/keys/$passwd $username@$ipaddr -p $port

echo "ssh -i $direc/$passwd $username@$ipaddr -p $port"

else

expect -f $direc/ssh_login.exp $ipaddr $username $passwd $port

fi;;

"q"|"quit")

exit

;;*)

echo "input error!!"

;;esac

done

}main

#!/usr/bin/expect -f

set target [lindex $argv 0]

set user [lindex $argv 1]

set passwd [lindex $argv 2]

set port [lindex $argv 3]

set timeout 10

spawn ssh $user@$target -p $port

expect

"*password:"

}interact

./manager.sh
編輯~/.profile

Linux下Shell指令碼

shell 指令碼 shell script 是一種為 shell 編寫的指令碼程式。從業界所說的 shell 通常都是指 shell 指令碼,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。由於習慣的原因,簡潔起見,本文出現的 shell程式設計 都是指 shell ...

Linux下shell指令碼程式設計

shell程式設計小練習 在linux作業系統中,如果插入乙個usb裝置,需要用mount掛載命令才能實現這個裝置的載入,下面寫乙個usb裝置掛載與檔案複製的shell程式,程式需求 1 執行時,提示使用者輸入 y 或者 y 確定是否掛載usb裝置,u盤檔案 dev sdc1 if ans y o ...

Linux下執行Shell指令碼

linux下可以用兩種方式執行shell指令碼 1 用shell程式執行指令碼 根據你的shell指令碼的型別,選擇shell程式,常用的有sh,bash,tcsh等。一般來說,第一行 bin bash裡面指明了shell型別的,比如 bin bash指明是bash,bin sh則是sh 然後輸入命...