首先在伺服器上生成金鑰,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...