SSH登入遠端伺服器的Shell指令碼

2021-08-20 20:36:11 字數 1189 閱讀 1169

製作ssh登入遠端伺服器的shell指令碼

ubuntu環境需要安裝expect安裝包

sudo apt-get install expect
使用shell指令碼自動ssh登入遠端伺服器

login.sh

#!/usr/bin/expect -f

# 設定ssh連線的使用者名稱

set user liuben

# 設定ssh連線的host位址

set host 10.211.55.4

# 設定ssh連線的port埠號

set port 9999

# 設定ssh連線的登入密碼

set password admin

# 設定ssh連線的超時時間

set timeout -1

spawn ssh $user@$host -p $port

expect "*password:"

# 提交密碼

send "$password\r"

# 控制權移交

interact

# 確定login.sh指令碼有可執行許可權

chmod +x login.sh

# 執行login.sh指令碼

./login.sh

# 第二種給指令碼有可執行許可權

[root]# chmod 777 ./login.sh

[root]# ./login.sh

# 注意

不能按照習慣來用sh login.sh來這行expect的程式,會提示找不到命令,如下:

login.sh: line 3: spawn: command not found

couldn't read file "*password:": no such file or directory

login.sh: line 5: send: command not found

login.sh: line 6: interact: command not found

因為expect用的不是bash所以會報錯。因為bash和expect的指令碼指定了不同的指令碼直譯器

#!/usr/bin/expect -f

#!/bin/bash

執行的時候直接./login.sh就可以了。~切記!

ssh遠端登入伺服器

首先準備好openssh或xshell,客戶端的ssh連線方式為 ip 埠號 預設為22 伺服器端要做的準備工作是確保開啟sshd,etc init.d shhd restrat,在伺服器安裝時,可以勾選初始安裝諸如ssh server之類的元件。如未安裝,可以使用apt install ssh s...

ssh證書遠端登入伺服器

使用者名稱 主機 s password 遠端主機密碼 這樣每次登陸都得輸入密碼,好麻煩的感覺 2.下面介紹一種ssh證書不用輸密碼的方式登入 原理 把客戶端生成的公鑰,上傳到ssh伺服器,新增到指定的檔案中,這樣,就完成ssh證書登入的配置了。2.1本地機配置 生成公鑰和私鑰 ssh keygen ...

ssh免密碼登入遠端伺服器

實驗背景 在我們的實際生產中,我們很多時候需要配製成可信賴的無密碼登入環境,ssh自身的公鑰私鑰 是我們常用的選擇。實驗環境 虛擬機器vmware workstation 12 player條件下 客戶端 centos6.4的系統,系統自帶的ssh軟體,ip 192.168.0.24 netmask...