多台LINUX主機SSH登入金鑰認證的配置

2021-08-15 08:01:33 字數 1379 閱讀 2488

首先在伺服器上生成金鑰,ssh-keygen -t rsa,輸入密碼等,或留空,例如生成了/root/.ssh/id_rsa_cenosb.pub檔案

將要ssh遠端連線的所有主機的ip,使用者名稱,密碼寫在同一目錄的pwd.txt,以空格作為分隔符,搞定以後可以刪除

指令碼如下

#!/bin/bash

a=`cat /root/.ssh/id_rsa_cenosb.pub`

cat pwd.txt | while read line

dohostip=`echo $line | cut -d" " -f1`

uname=`echo $line | cut -d" " -f2`

pwd=`echo $line | cut -d" " -f3`

/usr/bin/expect <<-eof

set time 30

spawn ssh $uname@$hostip

expect

"*password:"

}expect "*#"

send "echo $a >> /root/.ssh/authorized_keys\r"

expect "*#"

send "exit\r"

interact

expect eof

eof#echo "$pwd"

done

指令碼寫成這樣也可以

[root@m3 /]# cat ssh2.sh

#!/bin/bash

yum install expect -y

if [ ! -f ~/.ssh/id_rsa ];then

/usr/bin/expect <<-eof

spawn ssh-keygen -t rsa

expect

"enter passphrase (empty for no passphrase):"

"enter same passphrase again:"

}interact

expect eof

eoffi

cat pwd.txt | while read line

dohostip=`echo $line | cut -d" " -f1`

uname=`echo $line | cut -d" " -f2`

pwd=`echo $line | cut -d" " -f3`

/usr/bin/expect <<-eof

set time 30

spawn ssh-copy-id -i $uname@$hostip

expect

"*password:"

}interact

expect eof

eofdone

Linux免密SSH登入

ssh工作機制 ssh免密碼登入 一.ssh工作機制 ssh為secure shell 安全外殼協議 的縮寫。很多ftp pop和telnet在本質上都是不安全的。我們使用的xshell6就是基於ssh的客戶端實現。ssh的服務端實現為openssh deamon。在linux上使用ssh ssh ...

Linux多台主機互相免密登陸

一 原理 我們使用ssh keygen在a主機上生成私鑰和公鑰,將公鑰的內容貼上到b主機的authorized keys檔案內,就可以在a主機上使用ssh命令,不使用密碼登陸b主機。二 操作步驟 node1.ambari.com node2.ambari.com各個主機均執行以下操作 生成金鑰對 s...

Linux下多台客戶端免密登入到同一主機

需求 有a,b兩台客戶端,一台伺服器c 假設ip位址為192.168.4.100 要求a,b可以免密登入到伺服器c 步驟 1.a b兩台主機分別執行 ssh keygen t rsa,然後連續按回車,直至操作完成,此時會在a b兩台主機下 root ssh目錄下生產id rsa和id rsa.pub...