使用expect 打通到其他伺服器無密碼訪問

2021-09-04 01:59:14 字數 1219 閱讀 8496

由於zabbix對功能,業務監控比較方便,就用zabbix做監控,zabbix唯一的缺點就是需要在每台伺服器上安裝客戶端,即便是幾十台伺服器,一台一台做著實繁瑣,何況更多,時間緊急,無密碼登陸通道還沒打通,就準備先打通,再寫指令碼來安裝agentd,就選擇了使用except。關於expect語法與使用方法,可以私下交流。

具體指令碼如下。

本指令碼可以迴圈伺服器ip,完全做到自動化,缺點:伺服器密碼保持一致。

#!/bin/bash 

cat >login.exp <> ~/.ssh/authorized_keys ;

expect 

}expect "admin@\$ip's password:"

set timeout 3

send "\$password\r"

set timeout 10

send "exit\r"

expect eof

set timeout 3

spawn scp -p60022 ~/.ssh/authorized_keys admin@\$ip:~/.ssh/authorized_keys;

expect 

}expect "admin@\$ip's password:"

set timeout 3

send "\$password\r"

set timeout 10

send "exit\r"

expect eof

eoffor i in `cat iplist`

do  expect login.exp $i 

done

說明,iplist 裡面寫入伺服器ip位址即可

[root@zabbix admin]# cat iplist 

172.16.8.34

172.16.8.35

另乙個工具 sshpass 也可以實現無密碼訪問。

解壓編譯安裝即可

使用:#從命令列方式傳遞密碼

sshpass -p password ssh root@ip          -p後面直接指定密碼

#從文字傳遞密碼

sshpass -f file ssh root@ip   把金鑰寫到file裡即可。

#從環境變數傳遞

export sshpass="user_password"

sshpass -e ssh [email protected] 

無密碼登入伺服器

本地生成公鑰和私鑰 cd ssh ssh keygen t rsa 一直按回車就行,按照預設的選項生成私鑰儲存在.ssh id rsa檔案中,生成的公鑰儲存在.ssh id rsa.pub中 cp id rsa.pub authorized keys 把本目錄下的公鑰拷貝到遠端71伺服器 scp p...

SSH使用私鑰無密碼登入遠端伺服器

ssh無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以debian為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh keygen t rsa...

mac 無密碼登入遠端伺服器

記錄貼 使用expect 指令碼 快速通過跳板機連線遠端伺服器 新建指令碼 login.exp 示例如下 usr bin expect 定義陣列 連線列舉 set connection enum 1 179 set connection enum 2 gpu線上機器 set connection e...