呃,今天看 真实的归宿 前辈的《Hadoop集群配置》,其中的第二步“安装ssh和配置”,彻底把我给搞蒙了,写的真心乱,而且里面的步骤好多是不需要的,建议先了解一下ssh的实现原理。这里我把原理解释一下,然后给出一个简明的配置过程。
实现原理:
使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释是
首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)
然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥
当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了
配置过程:
(首先配置/etc/hosts文件,ip以我的两台虚拟机为例,添加192.168.56.101 node0,192.168.56.102 node1)
(假设已经配置好/etc/hosts文件,现在node0代表master,node1代表slave,其它slave同理,暂时先以这两个做示范,用户名均是hadoop,你要先搞清楚状况,现在master相当于上述原理中的客户端,slave相当于服务器,即现在是master(node0)想要登录到slave(node1)上)
1、安装:sudo apt-get install ssh
这个安装完后,可以直接使用ssh命令 了。
执行$ netstat -nat 查看22端口是否开启了。
测试:ssh localhost。
输入当前用户的密码,回车就ok了。说明安装成功,同时ssh登录需要密码。
(这种默认安装方式完后,默认配置文件是在/etc/ssh/目录下。sshd配置文件是:/etc/ssh/sshd_config):
注意:在所有机子都需要安装ssh。
2、在node0上执行 ssh-keygen -t rsa
(注:每次执行 ssh-keygen -t rsa 产生的私钥文件都会不同)
a)如果文件"~/.ssh/id_rsa"存在,会提示是否覆盖该文件,此时可选择"n"不覆盖该文件而使用已有的id_rsa文件;如果选择"y"则会重新生成"~/.ssh/id_rsa"文件,接下来会提示输入passphrase,回车确定使用空的passphrase,再次回车确认(这里也可以输出passphrase,相当于ssh时登录的密码)。然后会重新生成"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件。
b)如果"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件不存在则会自动创建新的"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件,passphrase设置同上。
(注:第一次安装,当然是第二种情况咯!)
3、现在要做的就是把公钥放到node1上了
a)如果node1上已经存在"~/.ssh/authorized_keys"文件,那么需要使用ssh hadoop@node1登录到服务器,编辑服务器上"~/.ssh/authorized_keys"文件,将客户端机器上的"~/.ssh/id_rsa.pub"文件内容追加到"~/.ssh/authorized_keys"文件中。
(注:可以在客户端机器上使用以下命令来实现: cat ~/.ssh/id_rsa.pub | ssh hadoop@node1 "cat - >> ~/.ssh/authorized_keys")
(此时会要求输入hadoop在服务器上的登录密码,输入后即会将客户端机器上的"~/.ssh/id_rsa.pub"文件内容追加到服务器上的"~/.ssh/authorized_keys"文件中)
b)如果服务器上没有"~/.ssh/authorized_keys"文件,那么首先在客户端上执行 cp id_rsa.pub authorized_keys (即将公钥复制为authorized_keys文件,准备再将此文件直接复制到服务器上),然后在服务器上建立目录~/.ssh/,最后将authorized_keys从客户端复制到服务器,在node0执行下面这条命令
scp authorized_keys node1:/home/hadoop/.ssh/
会提示你是否连接,输入yes,然后会提示你输入hadoop@node1‘s password,输入密码。
(注:第一次安装,也是第二种情况!)
4、ok,完成咯!下面登录,在node0上执行
ssh node1
会直接登入到node1哦!不用输入密码啦!退出的话就 exit
呃,相信你懂了原理以后,之间出的小状况你也一定可以解决的,祝你成功啦~
(另外,下面是有密码登录的情况,我自己做下笔记,你可以无视,呵呵~)
如果设置了passphrase,则此时需要输入该passphrase登录服务器。此时前面我们把输入密码变成了输入passphrase,这没有带来任何方便。但是我们可以通过ssh-agent来帮助我们自动输入passphrase(只是看起来像是自动输入而已),我们只要在第一次登录时输入一次passphrase, 以后的工作就可以交给ssh-agent。在客户端机器上执行命令ssh-add,这里会提示输入一次passphrase。输入第一步中设置的passphrase之后会修改"~/.ssh/id_rsa"文件。再在客户端执行"ssh hadoop@node1"即可无密码登录到服务器端。
相关推荐
配置linux ssh免密码登录,第一行生成密钥,第二行是要对哪台机器免密码ssh登录就配置成哪一台,这里root@hadoop00,root是用户名,hadoop00是主机名
Linux配置ssh免密码登录调试文档,对配置hadoop有帮助
linux环境下expecct脚本自动配置ssh无密码登陆
ssh协议连接,无密码登陆,记录了如何配置的清晰步骤。
hadoop集群服务器节点之间,无密码登录!!服务器本节点hostname无密码登录。
越来越多的小伙伴们使用远程登录,而ssh安全性无疑是很高的,那么我们现在来看看如何实现ssh无密码验证配置。 一. 准备工作 首先要确保你的linux系统中已经安装了ssh,对于ubuntu系统一般默认只安装了ssh client,...
针对两台服务器下的postgres数据库之间,实现无密码互相登录
主要为大家详细介绍了Linux配置远程SSH无密码登录的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
linux如何配置双机SSH信任然后双向免密码登陆.docx
在Linux的各个虚拟集中实现ssh进行远程登录,设置各个虚拟机之间的免密码登录。
ssh登录使用radius服务器认证配置方法
SSH 能够为整个通信通道提供加密,其中包括登录和密码凭据交换,它与公钥和私钥一起使用可以为登录提供自动化身份验证。您还可以将 SSH 用作基础传输协议。以这种方式使用 SSH 意味着在打开安全连接后,加密通道可以...
一、ssh服务器安装 1).我们使用免费软件freeSSHd。... 2)安装完成后进入配置界面, (1)Server State中确保SSH服务已打开 如果此处出现不能打开的情况,在SSH界面将Start SSH server on ...(4)在Linux客户端ssh配置,参
Linux制作RSA KEY并配置SSH客户端或服务器免密码访问
生成的key是和一对用户绑定的,生成key的用户以及存储这个key的公钥的远端主机的用户...ssh的原理就是,公钥给人家,自己留秘钥,远端主机的其他用户也是无法看到这个指定的用户的接受到的公钥的,所以用户是一对一的。
VMware中建立centos系统,两个centos系统实现免密码登陆,源码截图,亲自实现。
配置分两部分:一是对登录机的配置,二是对被登录机的配置,其中登录机为客户端,被登录机为服务端,也就是解决客户端到服务端的无密码登录问题。下述涉及到的命令,可以直接拷贝到Linux终端上执行,已全部验证通过...
Linux 安装及SSH免密码设置,有图 有文档。可以参考下。
假设有 A、 B 两台 Linux 服务器,我们希望能够从其中一台服务器通过 SSH 免密码登录到另一台服务器。 两台服务器的信息如下: 主机名 IP地址 免密码登录用户名 server1 192.168.12.11 guest1 server2 192...