Chinaunix首页 | 论坛 | 博客
  • 博客访问: 276224
  • 博文数量: 52
  • 博客积分: 1278
  • 博客等级: 中尉
  • 技术积分: 627
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-26 12:46
文章分类

全部博文(52)

文章存档

2013年(1)

2012年(51)

分类: LINUX

2012-03-06 09:47:54

实现环境:
本机CentOS5.5 64位的操作系统(其他4版的RedHat也试验过)

实现目的:
对其他主机做信任,使本机登录其他主机不需要输入密码

实现过程:
1.先在本机用ssh-keygen -t rsa生成公钥,生成/root/.ssh/id_rsa.pub公钥文件
2.下载安装一个工具:wget
tar -zxvf sshpass-1.04.tar.gz
cd sshpass-1.04
./configure
make && make install 3.把 StrictHostKeyChecking no加到/etc/ssh/ssh_config可以让ssh客户端自动接受新主机的hostkey,不用
每次在ssh新主机时都自己输入yes 4.编写一个hostlist文件,里面列举了主机ip地址和主机密码(ip和密码之间用空格隔开),一行内只有一对ip和密码 5.下面就是批量建立主机信任关系的脚本trusthost.sh:
01#!/bin/bash
02hosts=`sed '/^#/d' /root/trusthost/hostlist | awk '{print $1}'`
03id=`cat /root/.ssh/id_rsa.pub`
04for host in $hosts
05do
06   ping -c 2 -W 2 $host
07   if [ $? = 0 ]
08      then
09      passwd=`awk /$host/'{print $2}' /root/trusthost/hostlist`
10      sshpass -p "$passwd" ssh $host "mkdir /root/.ssh;echo $id >> /root/.ssh/authorized_keys"
11   else
12        echo "$host is lost" >> /root/trusthost/ssh.log
13   fi
14done
此脚本默认被做信任的主机root目录下没有.ssh目录 注:最后删除hostlist文件,确保安全。

转载地址
阅读(1752) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~