为了方便分布式集群操作,主机master需要免密操作两个节点slave1和slave2(slave1和slave2在对应机器已经修改hosts文件)
首先了解scp的作用,直接将A机的文件复制到B机;
scp [-P xxxx] A机文件路径 用户名@远程ip:/路径 (-P指定端口,默认22,大写P)
eg:scp -P 10000 -r /usr/local/test root@127.0.0.2:/usr/local/ -r指定传输文件为文件夹
操作步骤:
首先测试连接slave1操作:
[root@master sbin]# ssh slave1
root@slave1's password:
这里时需要密码的
1.生成本机密钥
ssh-keygen -t rsa
2.记录远程连接密码
ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2
3.测试操作
ssh slave1
然后我们就可以在主机直接复制到不同的节点上了
scp -r /usr/local/product slave:/usr/local 注:这里的-r指的是文件夹,如果缺少参数同时拷贝的还是文件夹,此时会报错regular file
方法二:包含本机免密登录设置
、配置ssh免密码登录
2.1、 配置Master无密码登录所有Worker
2.1.1、在Master节点上生成密码对,在Master上执行以下命令:
ssh-keygen -t rsa -P ''
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/root/.ssh"目录下。
2.1.2、在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
2.1.3、修改ssh配置文件"/etc/ssh/sshd_config"的下列内容:
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
2.1.4、重启ssh服务,才能使刚才设置有效:service sshd restart
2.1.5、验证无密码登录本机是否成功:ssh Master