在SecureCRT上创建对两台虚拟机的链接,然后在其中一个上走SSH协议,给另一台机器输命令
这是在192.168.8.88上面输入命令。。。。[root@master ~]# ssh 192.168.8.99 mkdir /jose
通过SSH即使自己给自己输命令都要输入密码
hadoop启动的时候只需要一台机器就可以把其他机器启动,因此需要用到SSH
-------------------------------------------------------配置SSH免密码启动hadoop--------------------
生成ssh免秘钥登陆
[root@master ~]# ls -la显示当前目录下所有文件详细信息
有一个.ssh隐藏文件
[root@master ~]# cd .ssh
[root@master .ssh]# ls
known_hosts
[root@master .ssh]# ssh-keygen -t rsa
[root@master .ssh]# ls
id_rsa id_rsa.pub known_hosts
[root@master .ssh]# cp id_rsa.pub authorized_keys
然后ssh master一下验证是否需要再输入密码。。。。
进入到hadoop的sbin目录下启动,发现不再需要密码。。。jps显示成功
--------------------------------------------------------免密码登陆到另一台机器---------------------------
前提是已经通过上面操作,生成了公钥,利用ssh-copy-id。。。把自己公钥拷贝给目标机器的ip地址
然后输入一次密码。。。。。
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '192.168.8.99'"
and check to make sure that only the key(s) you wanted were added.
[root@master ~]# ssh 192.168.8.99
Last login: Sun Nov 27 17:12:53 2016 from master
[root@master ~]# cd .ssh
[root@master .ssh]# ls
authorized_keys known_hosts
在目标机器的.ssh下出现2个文件。。。。ssh配置成功
---------------------------------------------------------------------原理------------------------------------------------------
现在有两台机器,一台叫A,另一台叫B。。现在A要免登陆到B
A要首先生成一对秘钥,ssh-keygen
将公钥拷贝给B并且要重命名为authorized_keys(更好的方法是ssh-copy-id B)
A向B发送一个连接请求,信息包括自己的用户名,ip等
然后B得到A信息后,去.ssh下的authorized_keys文件中查找,如果有该用户的用户名和主机名,B会随机生成一个字符串STR。。。
然后利用A的公钥对字符串STR进行加密,然后发送给A,A得到B发过来的消息用自己的私钥进行解密,然后将解密后的字符串发送给B。
B接收到A发过来解密的字符串会跟STR一一比较,一致就会允许免登陆。。。