2019独角兽企业重金招聘Python工程师标准>>>
背景
hadoop集群服务器实现ssh免密码登陆的好处本质就是简化hadoop集群内部服务器之间的数据通信,如果hadoop设置数据块备份两次,两个dataNode节点之间通过ssh进行数据传输还需要输入ssh的登陆密码,hadoop集群服务器的数量少还可手工操作,要是像百度这样的hadoop集群,维护这样的庞大的系统的工作人员肯定都想死的。
解决办法
linux提供一种ssh验证机制,只要将访问本机的远程服务器的ssh密钥对中的公钥存入本机的authorized_keys文件中,当远程服务器再次通过通过ssh访问本机时,linux会检测对方的传过来 的公钥,然后与本机的authorized_keys进行对比,如果一致则无需输入密码则可以自动连接
生产环境: DNS服务器
实验条件:3 台linux主机
操作步骤
①:生成ssh的密钥对:(.ssh为隐藏文件,直接cd切换进去即可)
进入linux用户目录输入:ssh-keygen -t rsa,ssh密钥生成程序自动常见.ssh的目录,里面存放密钥对。 id_rsa :私钥 id_rsa.pub :公钥
②:创建authorized_keys文件,将3台服务器的生成的公钥存放在一起
cp id_rsa.pub authorized_keys
③:通过ssh获取其他主机的公钥
scp squirrel@192.168.174.143:/home/squirrel/.ssh/id_rsa.pub ../Downloads/
④:合并其他主机的公钥信息到authorized_keys(重定向追加字符)
cat ../Downloads/id_rsa.pub >> authorized_keys
⑤:每台服务器都获取合并每台服务器公钥信息的authorized_keys,并放在.ssh的目录下 authorized_keys包含的三个节点公钥内容:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3RQGJVq3afiQHot4JsrifyGb/4n0lGbIcjmy9/P3T47WotyNH3PEYh9Sog+YIPTkmo/IQcyaNFJA/MK73vzE1XBj7hZn/SJ+rZnwYU2Z6t3NRX/+W3fLQCj8MnxcXihNRgVB16e000ePrbyueNmpc47S3wAnetwI17oowJm/1C+7u72yNQFnIxgPpQw2mzC/8N7mf+mBG3bbIhtOivezq5DH7w3AB9QhSqjCxqpMsrW8U7Y4WiV3Rz5Za/iTEcNjVnsABQJrNr3cUuAg89Nw2jexUfn4raRssxHT0jjrUJv/+Q0No08k4ydnfHMFE0D7rNLIRYkJRDoH1lLo2yMvfw== squirrel@localhost.localdomain
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxklwLamVISPo133ItggxUTk4UupEbWzkV5t0pnREbQe8As7R52muq5VVGbFTWDqVyS++ITO2ZKZfbdL8uB7jY9CYg1HQrwUr+/QF3l7ZTqbe1w0q16rSQw12TgHFc/WpR+wNLv4t6Ov0Zpp5mKYNDQiMhtZCAE0UOS/1h9g9l29T28CUr9c36tcyogpsFbKIKl+EDUsPBDHTuTsdAHfykzVKDCRsq7W9WRh3HnDJFzuV/lXYgOyNteFQ0jclbT6SJPjuOMzqEAvARx6cBhTcXttS/YV/cz0GyCAUblG5PPimhD2mAOxIQZWx8vnETy4pW2cBNz4zoy26qqU0WdkbeQ== squirrel@localhost.localdomain
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1jP5pP3MVxy3NX7vbkWBByenV/KRUXIAFaa0cf1w8eG9I+Kwx4QT+XO4lvHml7ZACLhDHugJSiR/I2eX0nIDninRSW4Zrp1/2upJ9XTVhrfVfHIu7SnZSU+sunxQ4VrY4O2JLuT8gd8NfncNCpmGmThTaceLxAuiaMtARRGq+c3R+QKn0cDImk3LHompEbq91VobIWixh0pnMHpDgFd1KRu60paKEiIidcEykX/GS1yUKqOMhAfnY/lnPQ8OgGE2vp1v/tGUi0AHltrXn79XoDHtRYhaXQlKGfe4iCv4WadzdDHsGHyJdeeR79KDMdLFK2gEQ5gLXcrlsV9iu9/V2Q== squirrel@localhost.localdomain
测试:(免密连接)
- ssh 192.168.174.143(节点服务器IP或主机名),免密登陆。
- 退出ssh连接:控制台输入exit即可)