1、每台服务器生成公钥
ssh-keygen -t rsa
2、每台服务器本机输入
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3、公钥复制到目标服务器
scp -P <端口号> ~/.ssh/authorized_keys root@<服务器地址>:/root/.ssh
4、测试
ssh -p <端口号> root@<服务器地址>
5、注意:
只能通过
ssh -p <端口号> root@<服务器地址>
不能通过
ssh <服务器地址>连接
6、jpsall代码
#!/bin/bash for i in hadoop102 hadoop103 hadoop104 do echo ===================== $i ===================== ssh -p 2822 root@$i "source /etc/profile && jps $@ | grep -v Jps" done
7、xsync代码
#!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍历所有目录,挨个发送 for file in $@ do #3. 获取父目录 pdir=$(cd -P $(dirname $file); pwd) #4. 获取当前文件的名称 fname=$(basename $file) #5. 遍历集群所有机器,拷贝 for host in hadoop102 hadoop103 hadoop104 do echo ==================== $host ==================== rsync -e 'ssh -p 2822' -av $pdir/$fname $USER@$host:$pdir done done