使用expcet传公钥到多台服务器

#!/usr/bin/expect
if { $argc != 2 } {
send_user "usage: expect ssh.exp ip\n"
exit
}

#define var
set ip [lindex $argv 0]
set password [lindex $argv 1]

spawn ssh-copy-id -i $ip

expect {
-timeout 2
"(yes/no)?" {send "yes\r";exp_continue}
"*password" {send "$password\r"}
timeout {puts "expect connect timeout,pls contact root;" return}
}
expect eof

exit -onexit {
send_user "root say good bye to you!\n"
}

原文地址:http://blog.51cto.com/yht1990/2151735

时间: 2024-10-24 04:14:05

使用expcet传公钥到多台服务器的相关文章

如何把文件上传到另外一台服务器

假定有两台服务器:A和B,其中A为Web服务器(IP:192.123.1.1, 为iis发布程序的服务器 ),B为文件服务器(IP: 192.123.2.2) 在文件服务器B中某个磁盘下创建一个共享文件夹DocShare,同时在该服务器上创建一个用户,如docUser, 并给此用户分配共享文件夹的读写权限 在WEB服务器A中也创建同一个用户,如 docUser, 同时密码与B中的docUser必须保持一致.并将用户docUser加入到IIS_WPG用户组 创建一个新的应用程序池docPool,

利用ssh-copy-id复制公钥到多台服务器

在做系统运维的时候,可能以免密码通过ssh方式登录到远程主机,这时就首先需要将本机的公钥复制到远程主机,用ssh-copy-id命令可以轻松做到. 如果没有生成密钥对,要先生成密钥,再将公钥复制到远程主机,usernaem是远程主机的用户名,host是远程主机的ip地址或域名 #生成密钥ssh-keygen -t rsa#复制公钥到远程主机 ssh-copy-id [email protected] 对于单台远程主机,直接使用命令就可以了,但如果有很多台主机,需要一台台操作,就费时费力了.那么有

拷贝ssh公钥到多台服务器上

这篇文章几乎是对Push SSH public keys to multiple host的翻译,谢谢该作者.使用SSH登陆.执行命令到远程机器需要输入密码,很多系统需要免输密码访问远程机器,比如hadoop主节点访问子节点时,这时可以使用ssh-copy-id命令将公钥拷贝到远程机器上,比如: ssh-copy-id -i [email protected]但如过面临很多机器,比如5,6,7,8台以上,一般会想到写个脚本,批量执行,但ssh-copy-id命令执行过程中有两处需要人工参与,一是

node 实现把文件上传到另一台服务器

1.needle npm install needle var needle = require('needle'); var data = { foo: 'bar', image: { file: './images/2.png', content_type: 'image/png' } } needle.post('http://xxx/upload_v_article', data, { multipart: true }, function(err, resp, body) { // n

轻松使用SaltStack管理成千上万台服务器(入门教程)

目录树  引言:一个"非专职运维人员"的烦恼  Salt快速入门  1. 安装配置  2. 安装管理端(master)  3. 安装被管理端(minion)  4. 接受minion的托管请求  5. 测试  Salt的强大功能  1. 批量操作(targeting)  2. 节点分组(nodegroups)  3. 命令执行(execution)  4. 节点信息(grains)  5. 配置管理(state)  6. 小结  Salt state实例解析  1. 目录结构  2.

键给多台服务器自动化安装vsftpd服务

#1.添加用户gongliuseradd test01echo 123456|passwd --stdin test01#2.配置sudoers:echo "test01 ALL= NOPASSWD:ALL" >> /etc/sudoersvisudo -cid test01su - test01 自动生成密钥.分发公钥.多台服务器一键安装vsftpd服务:[[email protected] ~]$ vim auto_deploy.sh #!/bin/sh. /etc/i

批量上传公钥到linux服务器

一直以来,都通过ssh-copy-id在手动上传公钥,想着如果有上千台服务器需要上传公钥的话,这个方法就行了.试着实现下批量上传公钥到服务器,介绍本人试的一个方法. 1: 先通过python脚本来试一台机器,python脚本如下: #!/usr/bin/python   import sys  import pexpect   ip = sys.argv[1] password = sys.argv[2] expect_list = ['(yes/no)', 'password:']   p =

Redis集群部署过程记录(3台服务器共6个节点)

这是我的第一篇博文,整理了我在部署Redis集群踩过的坑,以及详细的部署过程,同时归结了部署过程中遇到的问题的处理方法.1.部署的环境:SUSE Linux Enterprise 11 sp42.涉及到的安装包如下:(1) 安装包:redis-4.0.2.tar.gz下载地址:http://download.redis.io/releases/ redis官网http://www.redis.io(2) 接口包:redis-4.0.0.gem(3) 脚本语言包:ruby-2.4.2.tar.gz

双台服务器rsync同步报错(code 5) at main.c(1503) [sender=3.0.6]

环境:某某项目的代码机器70配置有双网卡:232.182.23.70(联通)61.10.45.70(电信) 另一台代码机器是沧州联通的代码机器102,配置单网卡:121.15.1.102(联通) rsync服务端服务器121.15.1.102上的配置文件rsyncd.conf 一开始/etc/rsyncd.conf 里面配置的允许ip:为61.10.45.70 [[email protected] tmp]# cat /etc/rsyncd.conf ##rsyncd.conf start##