在linux上部署hadoop或者其它需要远程访问调用的程序,需要配置ssh无密码访问。
1.简介
centos一般都装有sshclient和sshserver,一个是服务端接收ssh协议消息,一个是客户端给sshserver发送shell命令。
常用的命令ssh、scp等命令都是sshclient中的工具。
所以要配置无密码访问,前提是一定要安装sshclient和sshserver
2. 环境
192.168.1.81
192.168.1.82
192.168.1.83
目标:配置81无密码访问82、83
如果你要配置docker里面的无密码访问或者你的机器里面没有ssh服务,需要安装一下。
yum install -y openssh-server openssh-clients
openssh-server 是一个开启的接收ssh访问的服务。
openssh-clients 有ssh中的各种工具 scp ssh-keygen等
3.配置无密码访问
方法1.命令设置
##在81上键入下面命令,会有三个参数需要填写,用默认的就行,一路enter按下去
ssh-keygen
ssh-copy-id 192.168.1.82
ssh-copy-id 192.168.1.83
方法2.手动设置
方法2方便知道无密码访问的原理,知道哪个文件是公钥哪个文件是私钥,可以手动设置。
##在81上键入下面命令,会有三个参数需要填写,用默认的就行,一路enter按下去
ssh-keygen
##上面命令结束后,进入到下面的文件夹
cd /root/.ssh
##可以看到里面两个文件。一个公钥一个私钥,可以理解为古代调动兵权的虎符,公钥和私钥是一对的,只有公钥和私钥配对上了,才能进行访问。另外公钥和私钥的生成是根据一定的算法生成的,每次都不一样,会加入机器的因子,也就是说一台机器上生成的公钥私钥,放在另外一组机器上是不行的。
id_rsa为私钥,放在访问端的,相当于钥匙
id_rsa.pub为公钥,放在所有被访问端的,相当于锁。
-rw-------. 1 root root 1679 Sep 7 16:48 id_rsa
-rw-r--r--. 1 root root 393 Sep 7 16:48 id_rsa.pub
##将公钥重命名拷贝一个authorized_keys
cp id_rsa.pub authorized_keys
##用scp将authorized_keys拷贝到82、83的/root/.ssh目录下面就可以无密码访问了
scp authorized_keys 192.168.1.82:/root/.ssh/
scp authorized_keys 192.168.1.83:/root/.ssh/
3.测试
ssh 192.168.1.82
ssh 192.168.1.83
不用输入密码就可以登录表明成功。