免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2435 | 回复: 7
打印 上一主题 下一主题

求助:能初始化1000台机器的authorized_keys的脚本~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-22 14:54 |只看该作者 |倒序浏览
本帖最后由 也弹吉他 于 2010-11-22 14:55 编辑

很多管理服务器都是通过 ssh无密码登陆,来实现的。


假设场景:
    要部署1000台新的机器~,这些机器的初始密码都一样。假设机器名已经添加到hosts中,为server1 ......server1000
    另外一台管理机,需要把管理机的/root/.ssh/id_dsa.pub 复制到 这1000台机器的/root/.ssh/authorized_keys , 如果这个.ssh目录不存在的话,自动建立。
    这样就能实现大批量初始化,无密码登陆

遇见到的问题:
   1.   ssh 需要一个密码,好像没有参数可以指定密码的。
   2.   第一次ssh的时候,系统提示
  1. The authenticity of host 'gw1 (192.168.0.1)' can't be established.
  2. RSA key fingerprint is f4:ee:1c:9e:35:7a:52:c2:47:7e:87:78:b8:4c:c8:a9.
  3. Are you sure you want to continue connecting (yes/no)?
复制代码
需要回答yes,才能添加到 管理机的 /root/ .ssh/known_hosts 里。以后就不需要了


    不知道这个怎么回答ssh的密码,和登陆时的yes。
    很多管理几百几千台的大牛们早就玩剩下了吧!!  请指教一下啊!   多谢~

论坛徽章:
0
2 [报告]
发表于 2010-11-22 14:56 |只看该作者
kickstart

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2010-11-22 14:58 |只看该作者
回答ssh的登录密码和选择yes都可以使用expect实现。

论坛徽章:
0
4 [报告]
发表于 2010-11-22 14:59 |只看该作者
谢谢楼上的大牛们啊!!  能否仔细说说 expect 啊!!

要不我就自己去 man 了~~~~~

论坛徽章:
0
5 [报告]
发表于 2010-11-22 15:02 |只看该作者
回答ssh的登录密码和选择yes都可以使用expect实现。
L_kernel 发表于 2010-11-22 14:58



   
我找了一下啊~
  1. #! /usr/bin/expect

  2. set ip "10.1.1.3"

  3. set username "root"

  4. set passwd "123456"

  5. set remote_dir "/home/test/"

  6. set local_dir "/home/test/"

  7. spawn rsync -avz -e ssh $username@$ip:$remote_dir $local_dir

  8. expect {

  9.                   "yes/no" {send "yes\r";exp_continue}

  10.                   "password:" {send "$passwd\r";exp_continue}

  11. }
复制代码
这个就不是 shell 了吧, 这个 expect 语言里, 能写一个 for 循环嘛?  像 shell 一样, 处理大量的  , 比如  {1..1000}

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2010-11-22 15:11 |只看该作者
我找了一下啊~这个就不是 shell 了吧, 这个 expect 语言里, 能写一个 for 循环嘛?  像 shel ...
也弹吉他 发表于 2010-11-22 15:02



    expect是一个外部命令。在for循环里面用expect不也可以吗?直接用bash解析,就如同sed或者awk一样。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2010-11-22 15:15 |只看该作者
我找了一下啊~这个就不是 shell 了吧, 这个 expect 语言里, 能写一个 for 循环嘛?  像 shel ...
也弹吉他 发表于 2010-11-22 15:02



    刚好在这里看到了一个帖子。正好说你那种情况的。
http://bbs.chinaunix.net/thread-1520017-1-1.html
不知道是否有用?

论坛徽章:
0
8 [报告]
发表于 2010-11-22 15:23 |只看该作者
多谢多谢!!!



    十分感谢 !!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP