for批量建互信

1,使用ssh-keygen 生成公鑰
2,利用expect免交互傳輸公鑰
3,讀取文件list中的機器名和密碼,while是使用換行符做爲標記因此能夠使用while read LINE 來讀取數據,並過濾須要的信息,任何空白符均可以做爲for讀取的分隔符,因此爲何文件之間有空格會出問題,能夠使用:做爲分割符,修改下數據文件shell

使用for循環批量免交互輸密碼,也能夠用while按行讀取bash

[root@Ray shell]# cat createssh.sh
#!/bin/bash
for i in `cat list`
do
    hostname=`cut -d : -f1 list`
    passwd=`cut -d : -f3 list`
expect << EOF
    spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$hostname
    expect (yes/no) {send "yes\n"}
    expect    "*password" {send "$3\n"}
    expect "#" {send "echo\r"}
EOF
donessh

機器的相關信息及密碼寫到一個文件按中測試

[root@Ray shell]# cat list
192.168.1.102:root:bmzy1mjr
192.168.1.103:root:bmzy1mjr
192.168.1.104:root:bmzy1mjrspa

能夠測試機器是否能夠免免米.net

相關文章
相關標籤/搜索