ssh无密登录原理
Hadoop集群搭建时,配置ssh是给yarn用的,最好先清空.ssh目录下的文件,再生成密钥,在节点中含有resourcemanager的服务器(有多个resourcemanager的话可以只配置一个,集群里面可以共享通讯,但最好resourcemanager都配置ssh无密钥登录)生成ssh密钥,再ssh-copy-id 其他节点地址注:私钥和公钥是每个用户独有的,而不是机器或者服务器的,比如一台电脑或者服务器或者虚拟机,可以同时存在多个用户,但不同用户需要远程登录其他服务器或者虚拟机时,都必须配置各自的私钥和公钥,而且用户之间的各不相同
常用命令
ssh ip(远程登录也可以是ssh hostname,条件是本机和远程机器都配置了hosts文件映射,如果没有配置ssh无密登录需要输入密码,对于集群管理和运作是很不方便的,多以需要在分布式集群的时候需要配置.ssh文件)
无密配置
进入家目录(/home/username),cd 然后直接回车通过命令 ls-al 查看目录所有文件(包括隐藏文件,以点开头的文件)
进入.ssh目录
查看里面的内容。此时只有一个文件,因为此用户所在服务器(或者机器,虚拟机)没有被其他用户通过ssh免密登录访问过,也就是没有存放其他用户的公钥,如果有其他用户通过ssh免密访问此用户所在服务器(或者机器,虚拟机),此用户的服务器(或者机器,虚拟机)会在.ssh下生成一个文件名为known_hosts的文件,用来记录其他通过ssh访问过此用户所在服务器(或者机器,虚拟机)的计算机的公钥
1.未通过ssh访问其他用户:
注:authorized_keys翻译为授权码,作用是用来存放授权过的无密登录服务器公钥
2.通过ssh访问其他用户:(文章最后解释此文件的来源)
执行命令ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(该命令可参考:/microcosmv/article/details/62054835)将公钥复制到需要免密登录的机器(服务器上),通过如下命令
ssh-copy-id 目标ip地址(最好给本机也copy一个,ssh-copy-id 本机ip或者主机名)(输入命令回车后需要输入目标ip的用户密码才能成功)
注:copy-id的时候另一台机器的用户必须在线(因为一台Linux机器可以存在多个用户,需要把公钥复制到对应的服务器中对应的用户目录下,则该用户必须在对应服务器中在线),即机器必须是开启的,否则出现以下情况:
该用户所在服务器(或者虚拟机,实体Linux机器)开启切该用户在线时候(用户在线即登录服务器后,没有切换成其他用户,可操作服务器的用户):
当需要复制公钥的用户在线时候,再通过命令复制公钥到对应用户的服务器的用户家目录下的隐藏文件.ssh里面的authorized_keys中(/home/用户/.ssh/authorized_keys)主机hadoop1上的york用户通过ssh访问主机hadoop2上的york用户
1.访问前主机hadoop2上york用户的.ssh下面文件(未使用ssh命令连接前)
2.使用ssh连接后(连接成功)
3.使用exit命令可以退出远程免密登录