在配置hadoop相关环境的时候,需要打通一个免密登录通道。顺便就把windows主机也打通了,这样在用bash 连接虚拟机时就不用输入密码了。并且scp,sftp也就无需再次输入密码了,当然这也增加了风险。
本机的免密登录:
ssh-keygen
通过这个命令可以生成公钥私钥对。
私钥文件 id_rsa 和 公钥文件id_rsa.pub。
进入秘钥文件夹:
查看是否有`authorized_keys`这个文件,这个文件是用来存储免密的公钥。没有就直接创建一个,并将权限改为 600。然后将公钥文件追加到该文件即可。.ssh目录需要至少是700权限。
值得注意的是,目标机器家目录的权限有限制,除了用户,组和其他都不能有写权限,也就是权限最高是 drwx r-x r-x
免密配置结束,然后进行测试:
两台主机之间的免密登录:
ssh-keygen
在两台主机上各自执行生成秘钥操作。
比如A、B两台主机,A、B分别生成秘钥后,如果是想打通A登录B时的免密登录,则将A的公钥追加到B的authorized_keys文件中,反之亦然。与上面本机的操作相同。
上述打通了linux主机之间的免密登录,其实从windows也可以打通到linux的免密登录。
比如我平时登录虚拟机用的是git bash,git bash可以看做是一个微型的linux系统,ssh协议都是支持的。
所以可以打开本地git bash,然后利用 ssh-keygen命令生成windows本机的秘钥文件。然后将其追加到linux机器的authorized_keys文件中:
秘钥文件同样是在家目录下的.ssh文件夹中,这是个隐藏文件夹。发送到指定机器上。
在要打通免密的机器上将这个公钥文件内容追加到authorized_keys文件中即可。
测试: