Linux ssh下批量實現免密登入

2021-09-29 03:35:46 字數 1670 閱讀 1460

1.儲存遠端主機ip位址的檔案/cloud_nsd/shell/ip.txt

不用的ip位址需用「#」注釋

#201.1.2.100

#201.1.2.200

#192.168.4.6

192.168.4.1

192.168.4.2

2.pssh.sh指令碼

#!/bin/bash

#author:an

#version:1.1.0

#date:2019-04-16

#modify:2019-05-08 2019-05-15 2019-05-20

#describe:ssh免密登陸,並發布nfs共享給遠端主機

######################定義變數######################

nfs_dir=/cloud_nsd #nfs共享目錄

script_path=$nfs_dir/shell #指令碼目錄

soft_path=$nfs_dir/soft #軟體目錄

log_path=$nfs_dir/logs/pssh.log #pssh日誌路徑

ip_file=$nfs_dir/ip_temp.txt #存放執行ip

#載入函式庫

if [ -f "$script_path/myfunction.lib" ];then

source $script_path/myfunction.lib

else

echo -e "\033[31m函式庫不存在\033[0m"

exit $noexist

figrep -v '^#' $script_path/ip.txt >$ip_file #去掉注釋,提取/cloud_nsd/shell/ip.txt的有效ip

rpm -q pssh &>/dev/null || rpm -ivh $soft_path/lnmp_soft/pssh-2.3.1-5.el7.noarch.rpm &>/dev/nulll

#將本機公鑰傳送給遠端主機

sendkey()

expect "password:"

expect "#"

eof done

}#批量傳送安裝包,並解壓

pssh_tar()

#搭建nfs伺服器,發布/cloud_nsd共享目錄

nfs()

#批量執行指令碼

excute_script()

#幫助資訊

help()

#############################主程式#############################

clear

[ $# -eq 0 ] && help

while getopts :hps:in args

do case $args in

h) help;;

p) sendkey;;

n) nfs;;

s) excute_script $optarg $3 $4 $5;;

i)pssh_tar;;

\?)cecho 31 "invalid option:bash `basename $0` [-h]"

esac

done

linux ssh 免密登入

a機器免密碼登入b機器 生成金鑰 機器a ssh keygen t rsa 敲回車就好,不要設定密碼 傳送到遠端伺服器 機器a,機器b的ip 127.0.0.1 scp ssh id rsa.pub root 127.0.0.1 root ssh 追加到檔案中 在機器b上操作 cat ssh id ...

linux ssh免密登入

每次在使用 ssh 登入的時候,需要輸入密碼,而密碼往往比較長,即使是複製貼上也比較麻煩,典型的做法可採用 rsa 秘鑰的形式來實現密碼登入,亦可採用 shell expect 的方式。本文採用方案一,如對 expect 有興趣可自行了解。ssh keygen t rsa b 4096 c 備註 e...

Linux ssh免密登入

假設 伺服器a 要免密登入 伺服器b ssh keygen t rsa p 1.直接回車生成金鑰對 id rsa和id rsa.pub 2.把id rsa.pub追加到授權的key裡面去 ssh authorized keys cat ssh id rsa.pub ssh authorized ke...